EventBridge Storming — Como criar uma aplicação estado da arte totalmente Event-Driven e Serverless (Translated Version)

  • São divididas em serviços claros e bem definidos
  • Podem ser implantados de forma independente
  • Somente se comunicam com outros serviços de forma assíncrona
  • Dominam seus próprios dados
Um exemplo de SOA usando ESB como condutor das mensagens
  • Enterprise: Implica o uso em grandes organizações empresariais que geralmente usam para lidar com a complexidade nesses domínios, juntamente com o investimento alto em infraestrutura historicamente necessário.
  • Service: Fornecem uma maneira para os diferentes serviços (representações lógicas autocontidas de processos de negócios) se comunicarem.
  • Bus: Faz referência ao elemento de hardware dos computadores que permite a transferência de sinais entre diferentes componentes.

Evento: “Uma significante mudança no estado” — K. Mani Chandy

EventBridge

Exemplo de Bus padrão e customizado no Amazon EventBridge

O ESB está morto, vida longa ao ESB

Evitando o “Lambda Pinball”

“EventBridge Storming”

  • Redução de acoplamento
  • Maior velocidade de desenvolvimento a médio e longo prazo
  • Arquitetura mais adaptável e redução de risco de reconstrução
  • Redução de requisitos de código
  • Melhor ownership do sistema pelas equipes
  • Melhor disponibilidade

Guia do EventBridge Storming

Etapas do EventBridge Storming
  • Event Discovery: Descoberta dos conjuntos de domínios de eventos
  • Temporal Sequencing: Organização dos eventos em ordem cronológica e sequencial
  • Trigger Detection: Encontrar os pontos de gatilho e os atores
  • Categorize Aggregates: Encontrar as entidades (como substantivos)
  • Categorize Bounded Contexts: Agrupar os eventos evitando dependências (definição de fronteiras)
  • Name Microservices: Nomear os microserviços para ter fronteiras bem definidas por contexto
  • Create Single EventBus: Criar um único EventBus para todos os eventos
  • Build Shared Schema: Compartilhar a estrutura dos eventos entre os serviços

1. Event Discovery (Descoberta de Eventos)

Um exemplo simples de Event Discovery

2. Temporal Sequencing (Sequencialmento temporal)

Um exemplo simples de Temporal Sequencing

3. Trigger detection (Detecção de gatilhos) — Opicional

4. Categorize Entities & Aggregates (Categorização de entidades e agrupamentos)

Um exemplo simples de Aggregate/Entity

5. Categorization into Bounded Contexts (Categorização em contextos delimitados)

Um exemplo abstrato da categoriazação do Bounded Context.

6. Name Microservices (Nomeando os Microsserviços)

Construindo uma lista de (micro) serviços

  • Um contexto delimitado pode ter vários microsserviços correspondentes a seus Aggregates e Entities.
  • ⚠️Se um microsserviço estiver envolvido em vários contextos delimitados, o alarme deve soar! Isso geralmente resulta em um monólito distribuído fortemente acoplado.

7. Creating a Single EventBridge Event Bus (Criando um único Event Bus no EventBridge)

Um único EventBus para lidar com todos os eventos

8. Building a Shared Schema (Construindo um Schema compartilhado)

Conclusões

EventBridge Storming: uma especialização do EventStorming que reduz o retrabalho e o acoplamento da aplicação, para equipes que criam arquiteturas orientadas a eventos Serverless de última geração com EventBridge

--

--

Tools, techniques, and case studies of using serverless to release fast and scale optimally.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Evandro Pires da Silva

Serverless Evangelist, Founder at Sem Servidor podcast, Husband, father of Teodoro and Olivia