A arquitetura orientada a eventos é um modelo de arquitetura de sistemas diferente do tradicional modelo orientado a solicitações, onde os dados são modelados e trafegados no formato de eventos ocorridos nos sistemas gerando um maior reaproveitamento e desacoplamento na troca de informações entre os serviços. O modelo se encaixa em diversos contextos e vem ganhando adoção em conjunto com microserviços e plataformas de streamings de dados, como o Kafka, principalmente em cenários de grande volume de dados e alta disponibilidade. Com isso, o objetivo desta apresentação é contextualizar e discutir o trade off de abordagens orientadas a eventos em aplicações distribuídas.
Arquitetura Orientada a Eventos Desacoplando Comunicação Serviços
1. ARQUITETURA ORIENTADA A EVENTOS
Emmanuel Neri
@emmanuelnerii
www.emmanuelneri.com.br
DESACOPLANDO A COMUNICAÇÃO ENTRE SERVIÇOS
2. EMMANUEL NERI
‣ Mestre em Desenvolvimento de Tecnologia
‣ Desenvolvedor desde 2010
‣ Atualmente trabalhando com Go
‣ Especialista de Tecnologia na
‣ Membro do
7. ARQUITETURA ORIENTADA A EVENTOS
T h e e v e n t - d r i v e n a r c h i t e c t u r e p a t t e r n i s a p o p u l a r
distributed asynchronous architecture pattern used to produce highly
scalable applications. It is also highly adaptable and can be used for
small applications and as well as large, complex ones. The event-driven
architecture is made up of highly decoupled, single-purpose event
processing components that asynchronously receive and process
events.
Mark Richards
8. ARQUITETURA ORIENTADA A EVENTOS
Event-driven architecture (EDA) is a software design pattern that
enables an organization to detect “events” or important business
moments (such as a transaction, site visit, shopping cart abandonment,
etc) and act on them in real time or near real time.
tibco.com
Event-driven systems reflect how modern businesses actually
work–thousands of small changes happening all day, every day.
spring.io
9. EVENTOS
EVENTO = ACONTECIMENTO
‣ UsuarioCriado
‣ TransacaoAprovada
‣ ProdutoAdicionado
An event can be defined as "a significant change in state"
Event-Driven Applications: Costs, Benefits and Design Approaches
16. PENSANDO EM EVENTOS
‣ Evento “de comando”
‣ Eu entro na sala, ligo o interruptor de luz e a luz se acende
‣ Evento “Event First”
‣ Eu entro na sala, é gerado um evento “entrei na sala” e a luz se
acende
https://www.confluent.io/blog/journey-to-event-driven-part-1-why-event-first-thinking-changes-everything/
30. DOMAIN EVENTS X EVENT SOURCE
Event Sourcing ensures that all changes to application state are stored as a
sequence of events.
Martin Fowler
Domain Events
‣ Pedido foi confirmado
‣ Transação foi aprovada
‣ Novo produto foi cadastrado
Event source
‣ Iniciado pedido para o cliente Teste
‣ Adicionado produto celular de valor
1999 no pedido 001
‣ Adicionado produto capa protetora
de valor 80 no pedido 001
‣ Finalizado pedido 001