Jonatan Matajonmatum.com
conceptosnotasexperimentosensayos
© 2026 Jonatan Mata. All rights reserved.v2.1.1
Conceptos

Event Sourcing

Patrón donde el estado de la aplicación se deriva de una secuencia inmutable de eventos, proporcionando auditoría completa y la capacidad de reconstruir el estado en cualquier punto del tiempo.

seed#event-sourcing#events#audit#immutable#patterns#architecture

¿Qué es?

Event sourcing almacena el estado como una secuencia de eventos inmutables en lugar de solo el estado actual. Para conocer el estado actual, se reproducen todos los eventos desde el inicio. Cada evento representa algo que ocurrió y no puede modificarse.

Estado tradicional vs Event Sourcing

TradicionalEvent Sourcing
Almacena estado actualAlmacena eventos
UPDATE sobrescribeAppend-only
Sin historialHistorial completo
Un modeloMúltiples proyecciones

Ejemplo

Evento 1: CuentaCreada { id: 123, titular: "Ana" }
Evento 2: DepósitoRealizado { id: 123, monto: 1000 }
Evento 3: RetiroRealizado { id: 123, monto: 200 }

Estado actual: { id: 123, titular: "Ana", saldo: 800 }

Beneficios

  • Auditoría completa e inmutable
  • Reconstruir estado en cualquier punto del tiempo
  • Múltiples proyecciones de los mismos eventos
  • Debugging: reproducir exactamente qué pasó

Desafíos

  • Evolución de schemas de eventos
  • Performance con muchos eventos (snapshots)
  • Complejidad conceptual

¿Por qué importa?

Event sourcing almacena cada cambio de estado como un evento inmutable, proporcionando una auditoría completa y la capacidad de reconstruir el estado en cualquier punto del tiempo. Es especialmente valioso en dominios financieros, legales y de compliance donde la trazabilidad es obligatoria.

Referencias

  • Event Sourcing — Martin Fowler.
  • Event Store — Event Store, 2024. Base de datos diseñada para event sourcing.
  • Event Sourcing Pattern — Azure — Microsoft, 2024. Guía de implementación del patrón.

Contenido relacionado

  • CQRS

    Patrón que separa las operaciones de lectura y escritura en modelos distintos, optimizando cada uno independientemente para rendimiento y escalabilidad.

  • Arquitectura Orientada a Eventos

    Patrón arquitectónico donde los componentes se comunican mediante eventos asíncronos, permitiendo sistemas desacoplados, escalables y reactivos.

  • Patrón Saga

    Patrón para gestionar transacciones distribuidas en microservicios mediante una secuencia de transacciones locales con acciones de compensación para manejar fallos.

Conceptos