Rinha de backend Q3 - F#
Esse projeto consiste na tradução da solução em C# disponível neste link. Note que optei por não fazer a tradução ao pé da letra, pois acredito que alguns pontos deveriam ser melhor implementados.
As instruções originais do desafio podem ser encontradas aqui.
Pacotes
- Fantomas: Formatação do código;
- Npgsql: Provedor de dados em .NET para o PostgreSQL (banco de dados da solução);
- Dapper.FSharp: Extensão leve em F# para o Dapper (ORM) em C#;
- Giraffe: Um framework funcional nativo para desenvolvimento Web com o ASP.NET Core em F#;
- FSharp.SystemTextJson: Essa biblioteca adicionar suporte para os tipos em F# no System.Text.Json. É usada no projeto para a (de)serialização de JSON;
- FsToolkit.ErrorHandling: Biblioteca com várias funções que ajudam no tratamento de erros.
- NATS.Client.Hosting: Cliente assíncrono em C#/.NET para o NATS.
Rodando o projeto principal no ambiente local
cd participacao/
docker-compose up -d
Rodando o benchmark
cd Benchmarks/
dotnet run -c Release