Backend pra rinha backend 2023 q3
Projeto fork de https://github.com/hugomarques/rinha-backend-2023-q3-java
A adaptação feita foi:
- trocar o PostgreSQL por MongoDB Reactive
- trocar o Spring MVC pelo Spring WebFlux
- utilizar o Full Text Search do MongoDB na classe domain (@TextIndexed cria o índice automaticamente)
- removido Virtual Threads
- removido Redis (ou qqer cache)
- usado Spring Native (com GraalVM)
- baseada em Java 20 (sem Virtual Threads)
- adicionando campo allFieldsInOne apenas para o índice FTS
- usando writeConcern: UNACKNOWLEDGED no MongoDB (não espera OK de registro inserido)
- usando cache local (HashMap/HashSet)
- removido Spring Validation
- adicionado advice para erros do log
- ajustes no nginx
- ajustes nos pesos de CPU
Para rodar, precisamos ter instalado:
- docker
- Gatling (versão usada 3.9.5
- Subir o ambiente (MongoDB + 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)
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.