Curso Domain-Driven Design with Kafka (DDD + EDA)

  • DevOps | CI | CD | Kubernetes | Web3

Curso Domain-Driven Design with Kafka (DDD + EDA)

40h
Visão Geral

Este curso ensina, de forma prática e aplicada, como unir os princípios de Domain-Driven Design (DDD) com arquiteturas orientadas a eventos utilizando Apache Kafka como backbone. Você aprenderá a modelar domínios complexos, criar bounded contexts, definir eventos de domínio, projetar agregados consistentes e construir sistemas distribuídos altamente desacoplados, escaláveis e evolutivos.

Objetivo

Após realizar este curso, você será capaz de:

  • Aplicar DDD na divisão estratégica e tática de sistemas complexos
  • Criar bounded contexts claros e alinhados ao negócio
  • Transformar regras de domínio em eventos de domínio publicados no Kafka
  • Orquestrar interações entre microserviços usando event-driven architecture
  • Projetar agregados consistentes e resilientes
  • Utilizar Kafka como “event backbone” entre contextos
  • Construir aplicações altamente desacopladas, escaláveis e auditáveis
Publico Alvo
  • Engenheiros de Dados
  • Desenvolvedores Backend
  • Arquitetos de Software
  • Tech Leads
  • Profissionais que trabalham com sistemas complexos orientados a eventos
  • Times que desejam aplicar DDD em soluções modernas com Kafka
Pre-Requisitos
  • Conhecimento básico de Apache Kafka
  • Noções de microserviços
  • Familiaridade com modelagem de sistemas
  • Experiência com alguma linguagem backend (Java/Go/Node/Python)
Conteúdo Programatico

Module 1 — Introduction to DDD & Event-Driven Architecture

  1. DDD strategic vs tactical layers
  2. EDA fundamentals
  3. Why DDD and Kafka work well together

Module 2 — Strategic DDD: Understanding the Domain

  1. Domain discovery techniques
  2. Subdomains: core, supporting, and generic
  3. Bounded contexts and context maps

Module 3 — Event Modeling and Event Storming

  1. Event Storming fundamentals
  2. Discovering domain events
  3. Mapping commands, aggregates, and policies

Module 4 — Designing Domain Events for Kafka

  1. Domain events vs Kafka events
  2. Event naming conventions
  3. Event versioning and evolution
  4. Designing schemas using Schema Registry

Module 5 — Aggregates and Consistency Boundaries

  1. Aggregate roots and invariants
  2. Transaction boundaries
  3. Event-based aggregate persistence

Module 6 — Implementing DDD Tactical Patterns

  1. Entities, value objects, and domain services
  2. Factories and repositories
  3. Domain-centric validation rules

Module 7 — Integrating Bounded Contexts via Kafka

  1. Context mapping with event streams
  2. Anti-corruption layer patterns
  3. Message translation between contexts

Module 8 — Handling Commands & Business Logic

  1. Command validation patterns
  2. Generating events from domain logic
  3. Ensuring idempotency and consistency

Module 9 — Event Publishing & Subscription Patterns

  1. Outbox pattern for reliability
  2. CDC-driven event publishing with Debezium
  3. Choreography vs orchestration

Module 10 — Event Processing with Kafka Streams

  1. Building projections
  2. Creating materialized views
  3. Implementing sagas with Kafka Streams

Module 11 — Resilience and Error Handling

  1. DLQs and retry strategies
  2. Managing schema evolution
  3. Ensuring fault tolerance and reprocessability

Module 12 — Observability in DDD + Kafka Systems

  1. Tracing domain events end-to-end
  2. Metrics for aggregates and streams
  3. Event auditing and replay tracking

Module 13 — Evolving the Domain

  1. Refactoring bounded contexts
  2. Business-driven event evolution
  3. Maintaining backward compatibility

Module 14 — Capstone Project

  1. Full DDD + Kafka domain design
  2. Event Storming → bounded context → aggregates
  3. Implementing command → event → projection flow
  4. Deploying a production-ready domain-driven event system
TENHO INTERESSE

Cursos Relacionados

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso Apache NiFi e Hadoop DataFlow Engineering

40 horas

Curso Apache Kafka Data Streaming

24 horas

Curso Python Software Development

24 horas