Trabalhar em sistemas distribuídos é um grande desafio, dado a grande quantidade de conceitos e padrões computacionais que um engenheiro de sistemas precisa conhecer e saber aplicar.
Nesse tipo de sistemas, fica evidente que o estilo arquitetural Event-Driven começa a ser um padrão adotado para resolver problemas na comunicação entre os serviços, trazendo uma maior responsividade - Neste caso, otimizar o tempo de resposta das aplicações, às aplicações.
Implementar uma arquitetura distribída com base em Event-Driven traz alguns desafios, e um deles é a Garantia da Entrega de mensagens ou Guaranteed Delivery, que é um padrão de design com o qual, uma arquitetura passa a dar a capacidade de resposta de que, mesmo usando Microsserviços, a plataforma como um todo, passe a dar garantias de que as mensagens transitarão de um serviço para o outro, através de mensageria e processamentos em background.
Esse repositório traz a implementação do padrão arquitetural Outbox Pattern em um projeto usando as seguintes tecnologias:
- .NET 6 (como Minimal API)
- SQL Server
- Apache Kafka
- Docker
Para rodar o projeto, faça o clone do projeto e rode a linha de comando abaixo para subir os containers:
> docker-compose -f docker-compose.yaml up -d