Event-Driven Architecture

Sebastían Díaz

  • Github: @seadiaz
  • Twitter: @seadiaz
  • LinkedIn: @seadiaz

Underworld Tribe Lead

Acoplamiento apropiado

Monolito

Patrón observador

SIN

CON

  1. Suscribir
  2. Notificar a todos

Modelo de actores

SIN

CON

  1. Enviar mensaje
  2. Cortar ejecución

Sistemas Distribuidos

Colas

SIN

CON

Publicador / Suscriptor

Orquestación

Coreografía

Evento A

Evento A

Evento A

Evento A

Eventos

  • Siempre en pasado
  • Informan lo que ocurrió
  • No importa quien los usa
  • No hay consciencia de quien los usa
  • Son generados generalmente por un comando

Características

Tipo de mensaje

Mensaje completo

Evento A

{
  "id": "..."
}

Mensaje mínimo

{
  "id": "...",
  "nombre": "...",
  "descripcion": "..."
  "codigo": "...",
  "imagen": "...",
  "familia": {
    "codigo": "..."
    "nombre": "..."
  },
  ...
}

Evento A

Tecnologías

Showtime!

Transactions

Sagas

Crear A

Solicitud Creada

Solicitud Creada

Validación

confirmada

Crear A

Solicitud Creada

Solicitud Creada

Validación

rechazada

Validación

confirmada

Validación

rechazada

Patrón escúchate a ti mismo

Crear A

Solicitud Creada

Crear A

Solicitud Creada

Solicitud Creada

Por donde partir

Event Storming

Event-Driven Architecture

By Sebastian Diaz

Event-Driven Architecture

  • 129