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
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.