Backend pra rinha backend 2023 q3.
Mais informações sobre a rinha no Repo: https://github.com/zanfranceschi/rinha-de-backend-2023-q3
Esse repo tem 3 implementações (completas ou não).
A branch spring-tradicional contém uma implementação feijão com arroz:
- Spring boot
- Postgresql
- Redis
- Uso de Java 21 pra usar o Project Loom (veja o arquivo ThreadConfig.java)
A branch jdbc contém as seguintes mudanças:
- Spring boot
- Spring Data Jdbc
- Uso de Java 21 também pelo project Loom.
A branch main/flux implementa a solução com o paradigma reativo:
- Spring Boot Webflux
- R2dbc
- Postgresql (e o seu devido driver reativo)
- Redis
Para rodar, precisamos ter instalado:
- docker
- Gatling (versão usada 3.9.5
- Subir o ambiente (Postgresql + Redis) com o docker :
Na raiz do projeto, rodar:
docker compose -f docker-compose-local.yml up
- Subir a aplicação do Spring Boot (pela IDE ou por terminal)
MAVEN_OPTS="-Xmx1500m --enable-preview" mvn spring-boot:run
- Rode os testes do Galting
cd stress-test ./run-tests.sh
Tudo isso dá para ser feito dentro do IntelliJ tb se preferir.
A cada teste remova os volumes criados pelo Docker.
- Subir o ambiente (Postgresql + Redis) com o docker :
Na raiz do projeto, rodar:
docker compose up --build
- Rode os testes do Galting
cd stress-test ./run-tests.sh
- (Opcional) Recomendo monitorar seus containers através do comando:
docker stats
- https://github.com/willy-r/rinha-de-backend-2023-javinha
- https://github.com/boaglio/rinha-backend-2023-q3-java
- https://github.com/brunoborges/rinha-app
Aos @BrunoBorges pela mentoria, ao @Boaglio pela base pra rodar reativo.
E claro, ao grande @zanfranceschi por organizar esse desafio.