Qué es event sourcing y sus beneficios para las industrias

July 10, 2023

Tags: Tecnologías

event sourcing

 

El abastecimiento de eventos, o event sourcing, es un patrón de diseño de software que se centra en capturar y almacenar todos los cambios en el estado de una aplicación como una secuencia de eventos. En lugar de conservar el estado actual de una aplicación, el abastecimiento de eventos almacena un registro o diario de eventos que describen cada cambio de estado.

 

En el abastecimiento de eventos, el estado de una aplicación se obtiene reproduciendo y procesando estos eventos en el orden en que ocurrieron. Esto le permite reconstruir el estado de una aplicación en cualquier momento aplicando los eventos en secuencia. Al almacenar los eventos en lugar del estado actual, tiene un seguimiento de auditoría completo de cómo evolucionó el estado de la aplicación con el tiempo.

 

 

event sourcing

 

Uso de event sourcing en el mundo real

 

En una aplicación financiera, por ejemplo, la manera tradicional es que se tiene una base de datos, cuando se va a hacer una transacción, la aplicación se conecta a la base de datos, lee el estado de la cuenta y aplica los cambios como ingreso de dinero o retiros.

 

Con event sourcing, no se maneja este proceso con el estado tal cual, si no que todo está derivado en eventos, por ejemplo, en vez de ir a la base de datos y modificar la cuenta, lo que hace el sistema es que, si se hace el ingreso de una cantidad determinada de dinero, el sistema emite un evento con los detalles de esta transacción y los sistemas “interesados” en este evento van a reaccionar y procesar la transacción. 

 

Cada transacción se categoriza como un evento y la aplicación lo que hará para, por ejemplo, ver el historial de una cuenta es explorar cada evento. Puede parecer más trabajo, pero la empresa o cliente tendrá a disposición un historial de todo lo que pasó, siendo esto una medida de seguridad en caso de que falle la base de datos. 

 

event sourcing

 

Beneficios del uso de event sourcing para las industrias

 

El abastecimiento de eventos proporciona varios beneficios:

 

  • Auditoría histórica: dado que todos los eventos se almacenan, tiene un historial completo de cómo ha cambiado el estado de la aplicación a lo largo del tiempo. Esto puede ser útil para fines de auditoría, cumplimiento y depuración.
  • Viaje en el tiempo: al reproducir eventos, puede reconstruir el estado de la aplicación en cualquier momento. Esto le permite realizar consultas y análisis temporales, así como funciones de soporte como operaciones de "deshacer" o "revertir".
  • Escalabilidad y rendimiento: el almacenamiento de eventos como un registro de solo anexar facilita la escala y distribución del procesamiento de eventos. También permite un manejo eficiente de las actualizaciones simultáneas y reduce la contención en los recursos compartidos.
  • Flexibilidad y evolución: dado que los eventos representan acciones discretas, puede hacer evolucionar su aplicación agregando nuevos tipos de eventos o modificando la lógica de procesamiento de eventos sin afectar los eventos pasados o la capacidad de reproducción del sistema.

 

event sourcing

 

Aspectos para tener en cuenta antes de aplicar event sourcing en su empresa

 

Sin embargo, es importante tener en cuenta que el abastecimiento de eventos presenta complejidad en comparación con la persistencia tradicional basada en el estado. La implementación del abastecimiento de eventos requiere un diseño y una consideración cuidadosos del almacenamiento de eventos, los mecanismos de reproducción de eventos y el manejo de la consistencia eventual.

 

El abastecimiento de eventos a menudo se usa en dominios donde la auditabilidad, la trazabilidad o el análisis temporal son críticos, como los sistemas financieros, la gestión de la cadena de suministro o los flujos de trabajo comerciales complejos. Se puede combinar con otros patrones, como Command Query Responsibility Segregation (CQRS), para desacoplar aún más los lados de escritura y lectura de una aplicación.

 

Cada evento en el abastecimiento de eventos generalmente representa una acción discreta o un hecho que ocurrió en el sistema. Estos eventos son inmutables, lo que significa que no se pueden modificar una vez registrados. Los eventos mismos capturan los datos relevantes sobre el cambio de estado, como el tipo de evento, las entidades afectadas y cualquier dato asociado.

 

event sourcing

 

Rootstack hablará sobre event sourcing en su evento anual

 

Sobre este tema y otras funciones del event sourcing estaremos hablando en nuestro evento anual, el cual se celebrará el 21 de septiembre en Panamá, donde estaremos acompañados por varios de nuestros partners globales.

 

Los líderes de la industria bancaria, del retail, seguros y salud serán nuestros invitados de honor, día en el cual disfrutarán de más de 10 charlas técnicas y comerciales sobre los servicios que ofrecemos como agencia de desarrollo de sofware y las soluciones prestadas por nuestros partners: Red Hat, Acquia, ValidatedID, UiPath y Microsoft. 

 

Te recomendamos en video