Event sourcing

Es un patrón que consiste en almacenar una secuencia de acciones inmutables que cambian el estado de los datos de un sistema.

Ventajas:

  • Al mantener un registro histórico de todas las secuencias de eventos se puede solucionar problemas en datos ya que revisando el historial se puede explicar cómo la aplicación llegó al estado actual.
  • Efectuar pruebas en un ambiente controlado con datos de producción es más sencillo porque maneja una bitácora de acciones que permite volver al estado actual del sistema o a uno intermedio simplemente replicando los eventos sucedidos.
  • El almacenamiento de eventos puede optimizarse para obtener un mejor desempeño dado que solo permite agregarlos, no hay que borrar ni actualizar registros. Si se desea anular una acción anterior debe agregarse un nuevo evento que tenga ese efecto de reversión.
  • Evita problemas de concurrencia ya que registra la secuencia de acciones exactamente a como se ejecutó y no actualiza los objetos o datos guardados directamente.