O Spring possui vários módulos que permitem expandir seus recursos.
Utilizei os seguintes módulos nessa API:
- Spring WebFlux - Módulo para criação de endpoints de reativos.
- Spring Validation - Módulo para validação dos parâmetros dos endpoints.
- Spring Data R2DBC - Módulo para comunicação reativa com banco de dados.
E também utilizei a integração com GraalVM para gerar uma imagem nativa para o Docker que executa a API com menos recursos e inicializa mais rápido que a JVM.
Nunca tinha utilizado o PostgreSQL e foi uma boa oportunidade para testar já que e um banco e leve e muito poderoso.
Utilizando alguns recursos foi possível diminuir o tempo para realizar consultas e armazenar novas transações.
O Nginx e um servidor HTTP e load balance muito leve, necessitando de pouquíssimos recursos para conseguir atender as
requisições.
Com ele foi possível alocar mais recurso para o banco de dados e API.