manten tus datos agiles con event-sourcing
TRANSCRIPT
![Page 1: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/1.jpg)
MADRID · NOV 18-19 · 2016
![Page 2: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/2.jpg)
MADRID · NOV 18-19 · 2016
¿ Quién soy yo?
Emma Sesmero
Desarrolladora Java
![Page 3: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/3.jpg)
MADRID · NOV 18-19 · 2016
![Page 4: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/4.jpg)
MADRID · NOV 18-19 · 2016
![Page 5: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/5.jpg)
MADRID · NOV 18-19 · 2016
![Page 6: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/6.jpg)
MADRID · NOV 18-19 · 2016
![Page 7: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/7.jpg)
MADRID · NOV 18-19 · 2016
CRUD
Carrito
vacíoUPDATE UPDATE
![Page 8: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/8.jpg)
MADRID · NOV 18-19 · 2016
¿Event Sourcing?
![Page 9: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/9.jpg)
MADRID · NOV 18-19 · 2016
Event sourcing
Estado
inicialEvento 1 Evento 2 Evento 3
Estado actual
![Page 10: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/10.jpg)
MADRID · NOV 18-19 · 2016
![Page 11: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/11.jpg)
MADRID · NOV 18-19 · 2016
Eventos
Inmutables
Repetibles
![Page 12: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/12.jpg)
MADRID · NOV 18-19 · 2016
¿Por qué?
![Page 13: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/13.jpg)
MADRID · NOV 18-19 · 2016
Estado
inicial
Estado
actual
![Page 14: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/14.jpg)
MADRID · NOV 18-19 · 2016
Estado
inicial
Estado
actual
Estado
inicial
Estado
actual
![Page 15: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/15.jpg)
MADRID · NOV 18-19 · 2016
¿Para qué?
Trazabilidad completa
Registro de todos los cambios
Reconstrucción de cualquier estado
Flexible
No hay pérdida de información
![Page 16: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/16.jpg)
MADRID · NOV 18-19 · 2016
![Page 17: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/17.jpg)
MADRID · NOV 18-19 · 2016
![Page 18: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/18.jpg)
MADRID · NOV 18-19 · 2016
Carritovacío
Cámaraañadida
2 Librosañadidos
1 Libroborrado
Carritoborrado
Zapatosañadidos
Carritocomprado
Relojañadido
Carritoborrado
Inicio de los
tiempos
Relojañadido
Libroañadido
Libroañadido
Libroañadido
Libroborrado
Bolígrafoañadido
Pantalonesañadidos
Pantalonesborrados
Libroborrado
![Page 19: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/19.jpg)
MADRID · NOV 18-19 · 2016
Estadoinicial
Evento1 Evento2 Evento3 Evento4
Snapshot1
Snapshots
![Page 20: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/20.jpg)
MADRID · NOV 18-19 · 2016
Snapshots
Snapshot1 Evento3 Evento4
![Page 21: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/21.jpg)
MADRID · NOV 18-19 · 2016
¿Y si no necesito elhistorial?
![Page 22: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/22.jpg)
MADRID · NOV 18-19 · 2016
EventosApp
Store
Reader
Reader
Reader
![Page 23: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/23.jpg)
MADRID · NOV 18-19 · 2016
EventosApp
Store
MongoDB
Postgres
Elastic
Search
![Page 24: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/24.jpg)
MADRID · NOV 18-19 · 2016
¿Demasiado complejo?
![Page 25: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/25.jpg)
MADRID · NOV 18-19 · 2016
Mapping a ER no es simple
Decidir qué información no es importante
Nueva forma de pensar
Posibles problemas de sincronización
![Page 26: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/26.jpg)
MADRID · NOV 18-19 · 2016
Retos
![Page 27: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/27.jpg)
MADRID · NOV 18-19 · 2016
Revertir eventos
Eventos como sumas/restas
Aumentar precio 10€
Guardar anterior valor
precio anterior 100€, Nuevo precio 110€
Ejecutando todos los eventos (replaying)
![Page 28: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/28.jpg)
MADRID · NOV 18-19 · 2016
Dificultades replaying
EventosEvent
Handler
Data Store
Externo
![Page 29: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/29.jpg)
MADRID · NOV 18-19 · 2016
Dependencias replaying
EventosEvent
Handler
Systema
externo
Respuesta
![Page 30: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/30.jpg)
MADRID · NOV 18-19 · 2016
Código nuevo
Nuevas funcionalidades
Nuevos bug-fixes
Lógica que cambia
![Page 31: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/31.jpg)
MADRID · NOV 18-19 · 2016
Usos
Log de auditoría
Test & Debugging
Escalable
Command-Query Responsability Segregation
Event-driven architecture
![Page 32: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/32.jpg)
MADRID · NOV 18-19 · 2016
Ventajas
Recreación completa del sistema
Recreación temporal
Arreglo de eventos
Flexible
No hay pérdida de información
![Page 33: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/33.jpg)
MADRID · NOV 18-19 · 2016
Vida real
![Page 34: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/34.jpg)
MADRID · NOV 18-19 · 2016
EventosReceiver
IndexerSpring batch
Logic
![Page 35: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/35.jpg)
MADRID · NOV 18-19 · 2016
Definición de eventos
Información recibida
Espacio disponible
Estrategia de procesamiento
Estrategia de reindexación
![Page 36: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/36.jpg)
MADRID · NOV 18-19 · 2016
??
?
??
?
?
?
?
?
??
??
?
?
?
??
? ??
?
?
?
?
![Page 37: Manten tus datos agiles con event-sourcing](https://reader033.vdocuments.us/reader033/viewer/2022051709/587185981a28ab2c198b4d2d/html5/thumbnails/37.jpg)
MADRID · NOV 18-19 · 2016
MuchasGracias!