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 Docker Kubernetes Istio

40 horas

Curso Cloud-Native Infrastructure with Azure

32 horas

Curso CI CD Strategies with Docker & Kubernetes

24 horas

Curso Kubernetes for Full-Stack Developer

32 horas Curso Pratico

Curso Zadara Certified Cloud Practitioner

24 horas