Disponibilizamos no GitHub um projeto experimental em Domain-Driven-Design com implementação de Aggregates + Event Sourcing + CQRS. A técnica de A+ES é usada como ferramenta de auditoria das modificações do conteúdo do Blog.

A fonte dos dados são os Domain Events registrados no Kafka e para permitir consultas de alta performance foi criado um banco de dados MongoDB com o ‘último estado já processado dos eventos’.

Há também um microsserviço de Autenticação que fornece Bearer Tokens. Tudo isso foi implementado em .NET Core/Standard 2.0 compatível com Docker!

As aplicações desta solução são:

  • Producer: Web API que recebe os comandos de edição de conteúdo, produz Eventos de Domínio e publica as mensagens em um tópico no Kafka.
  • Consumer: Aplicativo Console que consome as mensagens do Kafka, deserializa em Eventos de Domínio, aplica nas agregações e persiste no MongoDB.
  • Auth: Web API que gera bearer tokens para acesso ao Producer.

Confere o Jambo no GitHub.