Skip to content

diegodario88/carijo

Repository files navigation

cropped_circle_image

Carijó - Rinha de Backend 2025

Este repositório contém a minha implementação para a 3ª edição da Rinha de Backend.

O projeto consiste em um intermediário de pagamentos que se comunica com dois serviços de processamento de pagamentos (um principal e um de fallback), buscando sempre a menor taxa e lidando com a instabilidade dos serviços.

Tecnologias Utilizadas

  • Linguagem: Go
  • Framework Web: Fiber
  • Load Balancer: Nginx para distribuir a carga entre as duas instâncias da aplicação.
  • Conteinerização: Docker e Docker Compose.

Arquitetura

A solução é composta por:

  • 2 instâncias da aplicação Go (white-carijo e black-carijo) que recebem as requisições de pagamento.
  • 1 instância do Nginx (balancer) que atua como load balancer.

A aplicação utiliza uma fila em memória para processar os pagamentos de forma assíncrona. Para lidar com a instabilidade dos processadores de pagamento, foi implementado o padrão Circuit Breaker, que monitora a saúde dos serviços e evita chamadas para serviços que estão falhando.

Como Executar

  1. Suba os processadores de pagamento: Antes de iniciar a aplicação, é necessário ter os serviços de processamento de pagamento da rinha rodando. Siga as instruções no repositório oficial da Rinha.

  2. Inicie a aplicação: Com os processadores de pagamento no ar, execute o seguinte comando na raiz deste projeto:

    docker-compose up -d
  3. Execute o teste de carga:

    k6 run challenge/rinha-test/rinha.js

Detalhes do Desafio

Para mais detalhes sobre o desafio, regras e endpoints, consulte o arquivo INSTRUCOES.md no diretório challenge.

About

Rinha de backend 2025 🐓

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors