Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Event Driven Architecture

Event Driven Architecture

Aprendizados de WoW para a Web Moderna

Avatar for Guilherme Augusto

Guilherme Augusto

January 30, 2026
Tweet

More Decks by Guilherme Augusto

Other Decks in Technology

Transcript

  1. Event Driven Architecture Event Driven Architecture Aprendizados de WoW para

    a Web Moderna Aprendizados de WoW para a Web Moderna
  2. Decidir o tipo de banco de dados, auth, deploy... Como

    os componentes se comunicam Definir as responsabilidades do sistema Como evolui conforme o tempo ARQUITETURA Dividir camadas e definir padrões de projeto
  3. Evento Mensagem EVENTOS != MENSAGENS ALGO ACONTECEU Pode falhar e

    ser reprocessada Sem destinatário Sem resposta Pode esperar resposta ENVIANDO ALGO
  4. Fila é infraestrutura de transporte para escalar, desacoplar e garantir

    entrega. Ela resolve problemas técnicos, não define arquitetura. Workers consumindo eventos de uma fila para processar tarefas em paralelo. Fila Mensagem é um envelope técnico que transporta dados de A → B. Pode carregar um evento, comando ou request, mas não define significado. JSON enviado via HTTP, RabbitMQ ou Kafka. Mensagem Evento é semântica de negócio: um fato do passado que já aconteceu no sistema. Não tem destinatário, não espera resposta e nunca muda. OrderCreated, a ordem foi criada, quem quiser reagir, reage. Evento
  5. Horizontal Mais instâncias (Containers) Vertical Velocidade de processamento CONCEITO DE

    ESCALABILIDADE Mais consumers (Reagentes) Múltiplos handlers Controle de frequência Mais CPU / RAM
  6. PRODUCER (Publisher) Controller PHP AddOn CONCEITOS/FUNDAMENTOS Serviço de pagamento Engine

    do WoW Worker Listener OrderCreated UserRegistered Engine interna (WoW client) BROKER (Event Bus) CONSUMER (Subscriber) Quem gera eventos Quem reage ao evento Quem distribui eventos
  7. DIFERENÇAS Assíncrono: Um sistema de processamento de pagamentos onde os

    pedidos são enfileirados e processados conforme a disponibilidade do serviço de pagamento. Síncrono: Uma consulta de saldo bancário, onde o cliente precisa da resposta imediata do servidor.
  8. Sincronizar apenas o que o usuário vê. Dados irrelevantes não

    são enviados, otimizando performance em sistemas multiusuário, dashboards em tempo real e chats. Interest Management O cliente faz animações, predição e UI; o servidor valida regras e mantém estado global. Em SPAs modernas, melhora a fluidez da aplicação. Foco no cliente, servidor leve (Front Responsa) Reduzir tráfego enviando apenas mudanças relevantes. Movimento, combate e ações são mensagens discretas, como WebSockets ou SSE com payloads parciais em aplicações web. Eventos em vez de streams contínuos Estratégias
  9. Flexibilidade: Facilita a integração de novos serviços sem alterar os

    emissores de eventos. Resiliência: Componentes podem falhar sem afetar o sistema como um todo. Desacoplamento: Componentes não precisam se conhecer, apenas os eventos que consomem ou produzem, Escalabilidade: Componentes podem ser dimensionados independentemente.
  10. Publish–Subscribe (AddOns) Recomendação: vários serviços precisam reagir ao mesmo fato.

    WoW: boss derrotado, drop de equipamentos, conquista, XP Evento: OrderCreated Subscriber: Listener Registro (EventServiceProvider) Publisher: Service / Controller
  11. Event Bus (Client) Não é fila, não é Kafka Dispatch

    de eventos + múltiplos listeners Evento: OrderCreated & OrderProcessed Consumers (listeners) Producers (Quem dispara) Event Bus
  12. Event Sourcing (Combat log) Recomendação: histórico importa (financeiro, pedidos, auditoria).

    O estado não vem do banco, mas sim da sequência de eventos Evento: OrderCreated & OrderProcessed Aggregate (conceito de DDD) Rebuild de Estado
  13. Conceito Categoria Foco Publish–Subscribe Design Pattern Comunicação Event Bus Architectural

    Pattern Distribuição Event Sourcing Architectural Pattern Persistência Observer Design Pattern Notificação
  14. RECAPITULANDO WoW não é um sistema com eventos. WoW é

    um sistema dirigido por eventos. EDA é conceito, não ferramenta Evento ≠ mensagem ≠ fila Foco emDesacoplamento Reagir > Requisitar
  15. CONCLUSÃO Nem tudo precisa ser síncrono Nem tudo precisa ser

    mensagem Arquitetura boa resolve o problema certo