Curso Designing Event-Driven Systems

  • DevOps | CI | CD | Kubernetes | Web3

Curso Designing Event-Driven Systems

24 horas
Visão Geral

O curso Designing Event-Driven Systems — Arquitetura e Projeto de Sistemas Orientados a Eventos apresenta os fundamentos, princípios e práticas para projetar sistemas distribuídos baseados em eventos, explorando como arquiteturas orientadas a eventos podem ser utilizadas para construir aplicações escaláveis, resilientes, desacopladas e altamente integráveis.

O treinamento aborda conceitos como event producers, event consumers, event brokers, event streams, event-driven communication, asynchronous messaging, event schemas, event ordering, delivery semantics, idempotência, retries, dead-letter queues, observabilidade e resiliência.

Também são explorados padrões arquiteturais como Event Notification, Event-Carried State Transfer, Event Sourcing, CQRS, Publish/Subscribe, Competing Consumers, Saga e Transactional Outbox, permitindo que os participantes compreendam quando utilizar cada abordagem e quais são seus impactos arquiteturais.

O curso possui uma abordagem prática de arquitetura, permitindo projetar soluções orientadas a eventos e avaliar decisões relacionadas a consistência, disponibilidade, escalabilidade, confiabilidade, governança e integração entre serviços.

Objetivo

Após realizar este curso Designing Event-Driven Systems — Arquitetura e Projeto de Sistemas Orientados a Eventos, você será capaz de:

  • Compreender os fundamentos de arquiteturas orientadas a eventos
  • Identificar quando utilizar uma arquitetura Event-Driven
  • Projetar sistemas distribuídos baseados em eventos
  • Diferenciar eventos, comandos e mensagens
  • Projetar produtores e consumidores de eventos
  • Definir estratégias de comunicação assíncrona
  • Selecionar padrões de integração orientados a eventos
  • Projetar tópicos, filas e canais de eventos
  • Definir contratos e schemas de eventos
  • Trabalhar com versionamento de eventos
  • Projetar mecanismos de retry e tratamento de falhas
  • Implementar estratégias de idempotência
  • Trabalhar com Dead Letter Queues
  • Compreender garantias de entrega de mensagens
  • Projetar soluções com ordenação de eventos
  • Aplicar padrões Event Sourcing e CQRS
  • Compreender e aplicar o padrão Saga
  • Utilizar Transactional Outbox
  • Projetar arquiteturas resilientes e escaláveis
  • Avaliar problemas de consistência distribuída
  • Incorporar observabilidade em arquiteturas orientadas a eventos
  • Avaliar trade-offs arquiteturais de soluções Event-Driven
  • Projetar uma arquitetura completa baseada em eventos
Publico Alvo
  • Arquitetos de software
  • Arquitetos de soluções
  • Engenheiros de software
  • Desenvolvedores backend
  • Tech Leads
  • Engenheiros de integração
  • Engenheiros DevOps
  • Engenheiros de plataforma
  • Profissionais de sistemas distribuídos
  • Analistas de sistemas
  • Profissionais envolvidos com arquitetura de microsserviços
  • Profissionais que trabalham com integração e mensageria
Pre-Requisitos
  • Conhecimentos de desenvolvimento de software
  • Conhecimentos básicos de arquitetura de software
  • Conhecimentos de APIs e sistemas distribuídos
  • Conhecimentos básicos de microsserviços são recomendados
  • Familiaridade com conceitos de bancos de dados é desejável
  • Conhecimentos básicos de mensageria são desejáveis
Materiais
Designing Event-Driven Systems
Conteúdo Programatico

Módulo 1 – Fundamentos de Event-Driven Architecture

  • Conceitos de sistemas orientados a eventos
  • O que é um evento
  • Event Producer
  • Event Consumer
  • Event Broker
  • Event Stream
  • Event Channel
  • Eventos síncronos x assíncronos
  • Comunicação baseada em eventos
  • Características de arquiteturas Event-Driven
  • Benefícios e limitações
  • Quando utilizar Event-Driven Architecture
  • Principais desafios arquiteturais

Módulo 2 – Modelando Eventos

  • Eventos de domínio
  • Eventos de integração
  • Eventos técnicos
  • Comandos x eventos
  • Eventos x mensagens
  • Identificação de eventos
  • Granularidade dos eventos
  • Event payload
  • Metadados
  • Event ID
  • Correlation ID
  • Causation ID
  • Timestamp
  • Event schema
  • Boas práticas para definição de eventos

Módulo 3 – Padrões de Comunicação Orientada a Eventos

  • Point-to-Point
  • Publish/Subscribe
  • Event Notification
  • Event-Carried State Transfer
  • Competing Consumers
  • Request/Reply assíncrono
  • Broadcast de eventos
  • Fan-out
  • Event streaming
  • Seleção do padrão adequado
  • Trade-offs entre os modelos

Módulo 4 – Projetando Event Brokers e Event Streams

  • Filas
  • Tópicos
  • Partições
  • Consumers
  • Consumer Groups
  • Retenção de eventos
  • Replay de eventos
  • Offset
  • Ordering
  • Throughput
  • Backpressure
  • Escalabilidade horizontal
  • Distribuição de carga
  • Kafka x RabbitMQ: perspectivas arquiteturais

Módulo 5 – Event Contracts e Schema Management

  • Contratos de eventos
  • Schema de eventos
  • Evolução de contratos
  • Compatibilidade backward
  • Compatibilidade forward
  • Versionamento de eventos
  • Event schema registry
  • Compatibilidade entre produtores e consumidores
  • Governança de eventos
  • Event naming conventions
  • Boas práticas de contratos

Módulo 6 – Confiabilidade e Entrega de Eventos

  • At-most-once
  • At-least-once
  • Exactly-once
  • Duplicação de mensagens
  • Idempotência
  • Retry
  • Exponential Backoff
  • Dead Letter Queue
  • Poison Messages
  • Message acknowledgment
  • Failure handling
  • Recovery
  • Resiliência em sistemas distribuídos

Módulo 7 – Consistência e Transações Distribuídas

  • Consistência distribuída
  • Problemas de transações distribuídas
  • Dual Write Problem
  • Transactional Outbox
  • Inbox Pattern
  • Idempotent Consumer
  • Eventual Consistency
  • Strong Consistency x Eventual Consistency
  • Distributed Transactions
  • Estratégias para consistência entre serviços

Módulo 8 – Saga Pattern

  • O problema das transações distribuídas
  • Saga Pattern
  • Choreography
  • Orchestration
  • Compensating Transactions
  • Saga Coordinator
  • Tratamento de falhas
  • Consistência de processos distribuídos
  • Quando utilizar Saga
  • Trade-offs entre Choreography e Orchestration

Módulo 9 – Event Sourcing e CQRS

  • Fundamentos de Event Sourcing
  • Event Store
  • Estado derivado de eventos
  • Replay
  • Snapshot
  • CQRS
  • Command Model
  • Query Model
  • Projections
  • Event Sourcing + CQRS
  • Quando utilizar
  • Complexidade e trade-offs

Módulo 10 – Observabilidade em Sistemas Orientados a Eventos

  • Desafios de observabilidade em sistemas assíncronos
  • Logs estruturados
  • Métricas
  • Distributed Tracing
  • Correlation ID
  • Trace Context
  • Monitoramento de produtores
  • Monitoramento de consumidores
  • Lag
  • Throughput
  • Latência
  • Falhas e retries
  • OpenTelemetry
  • Dashboards e alertas

Módulo 11 – Segurança e Governança de Eventos

  • Segurança na comunicação entre serviços
  • Autenticação
  • Autorização
  • Controle de acesso a tópicos e filas
  • Criptografia
  • Proteção de dados
  • Dados sensíveis em eventos
  • Event governance
  • Ownership de eventos
  • Data lineage
  • Auditoria
  • Compliance
  • Políticas de retenção

Módulo 12 – Arquitetura e Design de Sistemas Event-Driven

  • Identificação de bounded contexts
  • Definição dos eventos de domínio
  • Definição dos produtores
  • Definição dos consumidores
  • Modelagem dos fluxos de eventos
  • Escolha de padrões arquiteturais
  • Definição de contratos
  • Estratégias de consistência
  • Estratégias de resiliência
  • Escalabilidade
  • Observabilidade
  • Segurança
  • Governança
  • Avaliação de trade-offs arquiteturais

Módulo 13 – Laboratório: Construindo um Sistema Orientado a Eventos

  • Definição do cenário
  • Identificação dos domínios
  • Modelagem dos eventos
  • Criação dos produtores
  • Implementação dos consumidores
  • Configuração do broker
  • Comunicação assíncrona
  • Persistência dos dados
  • Implementação de retry
  • Tratamento de mensagens inválidas
  • Dead Letter Queue
  • Idempotência
  • Observabilidade
  • Testes de integração
  • Execução do fluxo completo

Módulo 14 – Projeto Final de Arquitetura

  • Análise de um cenário empresarial
  • Identificação dos requisitos
  • Identificação dos eventos
  • Definição dos serviços
  • Modelagem do fluxo de eventos
  • Escolha do padrão de comunicação
  • Definição do broker
  • Estratégia de persistência
  • Consistência
  • Resiliência
  • Escalabilidade
  • Observabilidade
  • Segurança
  • Governança
  • Documentação da arquitetura
  • Apresentação e avaliação da solução
TENHO INTERESSE

Cursos Relacionados

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso Databricks Advanced Engineering AI ML and Data Products Nivel Intermediario Avancado

32 horas

Google Professional DevOps Engineer Advanced Monitoring & Incident Response

32 horas Curso Pratico

Curso Google Professional DevOps Engineer CI/CD Techniques & Security Practices

32 horas Curso Pratico

Curso Site Reliability Engineering SRE Improving Service

32 horas Curso Pratico

Curso SQL For Data Analysis Advanced Techniques for Transforming Data into Insights

40 horas