Beneficios del Event Sourcing
El Event Sourcing se ha convertido en otra palabra de moda en estos días, así que hemos decidido escribir un artículo de introducción para explicar el concepto principal y enumerar todos los beneficios que podrías obtener mediante su implementación.
La idea principal detrás del Event Sourcing
Básicamente, el Event Sourcing garantiza que todos los cambios en el estado de la aplicación se almacenan como una secuencia de eventos. No solo podemos consultar estos eventos, también podemos usar el registro de eventos para reconstruir estados pasados y como base para ajustar automáticamente el estado para hacer frente a los cambios retroactivos.
Veamos un ejemplo sencillo: notificaciones de envío. La introducción de Event Sourcing crea un objeto de evento para registrar el cambio y lo procesa para actualizar el envío. No sólo podemos ver dónde está cada nave, podemos ver dónde ha estado.
Además, un ejemplo común de una aplicación que utiliza Event Sourcing es un sistema de control de versiones. Tal sistema utiliza consultas temporales con bastante frecuencia. La subversión utiliza reconstrucciones completas cada vez que se utiliza el volcado y la restauración para mover cosas entre archivos de repositorio.
Hay una serie de opciones sobre dónde colocar la lógica para controlar eventos. La opción principal es si se debe colocar la lógica en secuencias de comandos de transacción o un modelo de dominio. Normalmente, los scripts de transacción son mejores para la lógica simple y un modelo de dominio es mejor cuando las cosas se complican.
Martin Fowler cree que la clave de Event Sourcing es que garantiza que todos los cambios en los objetos de dominio son iniciados por los objetos de evento. Esto conduce a una serie de instalaciones que se pueden construir en cima del registro de eventos:
- Reconstrucción Completa: podemos descartar el estado de la aplicación por completo y reconstruirlo volviendo a ejecutar los eventos desde el registro de eventos en una aplicación vacía.
- Consulta temporal: podemos determinar el estado de la aplicación en cualquier momento. Noción, lo hacemos comenzando con un estado en blanco y volviendo a ejecutar los eventos hasta un momento o evento en particular.
- Reproducción de eventos: si encontramos que un evento pasado era incorrecto, podemos calcular las consecuencias revirtiéndolo y los eventos posteriores y, a continuación, reproduciendo el nuevo evento y eventos posteriores.
Otros beneficios del Event Sourcing
-
- Escalabilidad
Event Sourcing también plantea algunas posibilidades para su arquitectura general, especialmente si está buscando algo que es muy escalable. Hay una buena cantidad de interés en la arquitectura impulsada por eventos en estos días. Este término cubre una gama justa de ideas, pero la mayoría de los centros en torno a los sistemas que se comunican a través de mensajes de eventos. Estos sistemas pueden funcionar en un estilo paralelo muy acoplado que proporciona una excelente escalabilidad horizontal y resistencia a la falla del sistema.
- Escalabilidad
-
- Registro de auditoría 100% preciso
La funcionalidad de auditoría se agrega a menudo como una idea posterior, lo que resulta en un riesgo inherente de incompleto. Con el abastecimiento de eventos, cada cambio de estado corresponde a uno o más eventos, lo que proporciona un registro de auditoría 100% preciso.
- Registro de auditoría 100% preciso
-
- Modelos expresivos
Event Sourcing te obliga a modelar eventos como objetos de primera clase, en lugar de hacerlo mediante cambios de estado implícitos. Esto significa que tus modelos se asemejan mucho a los procesos reales que estás modelando. Esto aporta mucha claridad y evita que te pierdas en los detalles de su tecnología de almacenamiento. Hace que lo implícito sea explícito.
- Modelos expresivos
-
- Informes indoloros
Tienes el historial completo de cada evento que ha ocurrido, en orden cronológico, esto significa que puedes hacer cualquier pregunta que te guste sobre esos datos históricamente.
- Informes indoloros
-
- Cambiar fácilmente las implementaciones de bases de datos
Debido a la naturaleza efímera de las estructuras de datos de origen de eventos, ahora tiene plena libertad para utilizar cualquier tecnología de base de datos que desee almacenar el estado.
- Cambiar fácilmente las implementaciones de bases de datos
Esperamos que este artículo te aporte una buena visión general de lo que es el Even Storming y por qué las empresas lo implementan. Si tienes alguna consulta, no dudes en compartirla en la sección de comentarios a continuación o enviándonos un mensaje, estaremos encantados de ayudarte!