Destino Dev

Cursos

CQRS + Event Sourcing com .NET + MediatR

Domine os padrões arquiteturais mais avançados do ecossistema .NET com este curso completo sobre CQRS (Command Query Responsibility Segregation) e Event Sourcing. Você aprenderá a separar operações de leitura e escrita, modelar o estado da aplicação como uma sequência de eventos e construir sistemas resilientes e auditáveis.

Com o uso do MediatR, biblioteca fundamental no .NET, você implementará pipelines de Commands e Queries com handlers desacoplados, behaviors para validação e logging, e notificações para comunicação entre componentes. O curso aborda também a integração com bancos de dados como EventStoreDB e PostgreSQL, e como publicar eventos de domínio de forma confiável com o Outbox Pattern.

Ao final, você será capaz de projetar e construir sistemas empresariais complexos utilizando os padrões CQRS e Event Sourcing em projetos reais com .NET 8, garantindo escalabilidade, rastreabilidade completa e uma arquitetura limpa e sustentável.

Conteúdo do curso

Módulo 1: Fundamentos de CQRS e MediatR no .NET

Aprenda os conceitos centrais do padrão CQRS e como implementá-lo com a biblioteca MediatR no .NET 8, criando Commands, Queries, Handlers e Pipeline Behaviors.

  1. O que é CQRS e por que usar (18 min)
  2. O que é CQRS e por que usar (15 min)
  3. Instalando e configurando o MediatR no .NET 8 (20 min)
  4. Criando Commands e Command Handlers (25 min)
  5. Criando Queries e Query Handlers (22 min)
  6. Pipeline Behaviors: Validação com FluentValidation (25 min)
  7. Pipeline Behaviors: Logging e Performance (20 min)
  8. Notifications e Domain Events com MediatR (22 min)

Módulo 2: Event Sourcing: Conceitos e Modelagem de Eventos

Compreenda os fundamentos do Event Sourcing, aprenda a modelar eventos de domínio, trabalhar com Aggregates orientados a eventos e entender projeções e read models.

  1. O que é Event Sourcing e como funciona (20 min)
  2. Diferenças entre Event Sourcing e CRUD (18 min)
  3. Modelando eventos de domínio (22 min)
  4. Aggregates e Event Store: conceitos e implementação base (25 min)
  5. Snapshots: otimizando a reconstrução de estado (20 min)
  6. Projeções e Read Models no Event Sourcing (22 min)
  7. Eventual Consistency e estratégias de compensação (20 min)

Módulo 3: EventStoreDB: Implementação Prática

Configure e utilize o EventStoreDB como armazenamento de eventos, implemente Aggregates com Event Sourcing, gerencie streams, crie projeções persistentes e processe eventos em tempo real com subscriptions.

  1. Introducao ao EventStoreDB (15 min)
  2. Configurando EventStoreDB com Docker (20 min)
  3. Ciclo completo: Command Handler com EventStoreDB (25 min)
  4. Projecoes persistentes no EventStoreDB (22 min)
  5. Subscriptions: processando eventos em tempo real (22 min)
  6. Gerenciando streams, metadados e versionamento (18 min)
  7. Testes de integracao com EventStoreDB (20 min)

Módulo 4: CQRS + Event Sourcing com PostgreSQL e Outbox Pattern

Implemente Event Sourcing usando PostgreSQL como Event Store, separe bancos de leitura e escrita, sincronize Read Models com eventos e garanta publicação confiável usando o Outbox Pattern.

  1. Arquitetura: Event Sourcing com PostgreSQL como Event Store (25 min)
  2. Implementando o Event Store com EF Core e PostgreSQL (28 min)
  3. Separando Read Database e Write Database (22 min)
  4. Outbox Pattern: publicacao garantida de eventos (25 min)
  5. Idempotencia e deduplicacao de eventos (20 min)
  6. Sincronizando Read Models com projections handlers (22 min)

Módulo 5: Projeto Final: Sistema de Gestão de Pedidos com CQRS e Event Sourcing

Construa do zero um sistema completo de gestão de pedidos aplicando todos os padrões do curso: CQRS com MediatR, Event Sourcing com PostgreSQL, Outbox Pattern, testes automatizados e observabilidade.

  1. Projeto Final: Visao geral e estrutura do sistema (20 min)
  2. Implementando o Aggregate Order completo (30 min)
  3. Implementando Commands, Queries e Projections (30 min)
  4. Infraestrutura: PostgreSQL Event Store e Outbox Worker (28 min)
  5. Testes completos: unitarios, integracao e observabilidade (28 min)
  6. Deploy com Docker e consideracoes de producao (22 min)
  7. Projeto Git: estrutura completa de arquivos para download (15 min)