Submissão feita com:
- Nginx como load balancer
- Go para api com o driver
pgx/v4
para interagir com o banco de dados - Postgres como banco de dados
- Repositório da API
![(Imagem) Estatísticas do teste com gatling, 2024/02/23.](https://private-user-images.githubusercontent.com/60318892/307224267-145855fd-79cf-42be-879b-e2e41d24a016.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNDAyNjUsIm5iZiI6MTczOTEzOTk2NSwicGF0aCI6Ii82MDMxODg5Mi8zMDcyMjQyNjctMTQ1ODU1ZmQtNzljZi00MmJlLTg3OWItZTJlNDFkMjRhMDE2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDIyMjYwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg5NDVhMzExM2UzNGE3MjI0NDJjNGZiZWY3OTJiYmMzNjhlYjM1ODA3MWFhOTRmODBjZWJhY2IyZTIzNTJlZjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5SThzyOCsex64rbBfW3emOA7A2Xj9G3UTF0q1-yY7Rw)
Resolvi participar porque estou querendo aprender mais sobre Go.
É minha primeira vez fazendo um projetinho na linguagem fora o de algum
tutorial/livro, então também quis explorar coisas como criar e aplicar um
middleware além de tentar criar uma estrutura de diretórios/arquivos/pacotes que
pudesse fazer sentido para organizar a aplicação.
Minha ideia era usar somente a biblioteca padrão, principalmente com as mudanças
no serverMux
padrão que vieram com a versão 1.22.0
da linguagem. A única lib
externa que acabei usando mesmo foi o driver pro postgres.
Obrigado, Leandro Proença, por mostrar a Rinha (:
Minha ideia foi usar um lock pessimista na tabela clientes
, usando o sql
FOR NO KEY UPDATE
quando feito o select para pegar o saldo do cliente.