Last active
October 25, 2017 13:08
-
-
Save luque/dafc1851b599f39ba0070ceab8ff47c6 to your computer and use it in GitHub Desktop.
ES y CQRS desde las trincheras - Nota preparatorias
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Descripción | |
Event sourcing es una aproximación distinta de la tradicional (salvo en algunos sectores) al concepto de persistencia | |
de una aplicación, que aunque ni mucho menos nueva, está empezando a considerarse cada vez con más frecuencia como una | |
opción interesante en algunos contextos. | |
Tanto event sourcing como CQRS (Command-Query Responsibility Segregation) constituyen un potente paradigma de arquitectura | |
del que se puede sacar un gran partido, pero que como todo, no está exento de trampas a evitar y detalles a tener en cuenta | |
si se quiere aplicar con éxito. | |
En OSOCO hemos aplicado en profundidad la arquitectura ES/CQRS en nuestro último proyecto y hemos tenido la ocasión de | |
aprender en nuestras propias carnes algunas lecciones valiosas cometiendo numerosos errores por el camino. | |
El objetivo de esta charla es sintetizar nuestra experiencia durante estos últimos meses en forma de errores a evitar, | |
detalles importantes que debes tener presentes y recomendaciones que te pueden salvar el pellejo, empleando para ello | |
ejemplos prácticos basados en un caso real. | |
* Idioma: Español. | |
* Duración: 45 min. | |
* Nivel: Intermedio. | |
* Autores: | |
- José San Leandro | |
- Víctor del Valle | |
- Rafael Luque | |
- Julio Ripoll | |
- José Canfrán | |
* Características fundamentales de la charla: | |
- Tono "desde las trincheras", es decir, charla de desarrolladores para desarrolladores. El objetivo no es presentar una | |
solución perfecta ni una "bala de plata", sino desde la humildad tratar de identificar los principales errores en nuestro | |
acercamiento a la arquitectura CQRS/ES y plantear soluciones que sean de utilidad para otros desarrolladores. | |
- Donde sea posible emplear casos extraidos de nuestra experiencia en proyectos reales y código, incluso código funcionando, | |
para ilustrar y apoyar nuestra argumentación, evitando caer en divagaciones demasiado teóricas. | |
- No enamorarnos de nuestra solución ni del paradigma. Ser capaces de presentar conclusiones objetivas sobre las ventajas | |
e inconvenientes de su uso. | |
- Involucrar a la audiencia recabando su feedback en determinadas ocasiones. Incluso en función de este feedback se podrían | |
plantear diferentes itinerarios ligeramente distintos. Por ejemplo, describiendo en mayor o menor profundidad en qué | |
consiste ES y CQRS. | |
* Objetivos perseguidos: | |
- La preparación de la charla debe cambiarnos (mejorándonos) a los ponentes y preparadores. Servirá de catalizador de | |
cambios y mejoras en la arquitectura, o al menos de un análisis más detallado de la misma, sus bondades e inconvenientes. | |
- La charla también debe "mejorar" a sus receptores. Perseguimos: | |
- Que obtengan una idea clara de los conceptos de ES y CQRS. | |
- Que tengan claro que no es la panacea. | |
- En un sentido más práctico que comprendan: | |
- Escenarios más indicados y menos para su aplicación. | |
- Ventajas. | |
- Inconvenientes. | |
- Detalles a tener en cuenta para evitar algunos de los errores que nosotros hemos cometido. | |
* Agenda: | |
1. Presentación. | |
2. Objetivos de la charla. | |
3. Intro a CQRS y ES. | |
4. Descripción del caso de estudio (BATS/Contestia?): | |
- Descripción de la aplicación. | |
- Descripción del equipo. | |
- Descripción del contexto. | |
5. "Uhmm, un proyecto greenfield... ¿probamos CQRS/ES?" | |
- ¿Por qué decidimos usar CQRS/ES en este caso? | |
- Nuestras lecciones aprendidas sobre en qué escenarios conviene más CQRS/ES: | |
- Pros/Cons | |
- CQRS vs... | |
6. "Tips, Tricks and Gotchas" o "La letra con sangre entra" (ie. nuestra selección de errores y lecciones aprendidas) | |
6.1. TBD | |
6.2. TBD | |
6.3. TBD | |
... | |
6.10 TBD | |
7. Conclusiones | |
8. Recursos | |
9. Feedback form | |
10. Q&A | |
* Formato del material de presentación: | |
- TBD | |
* Puesta en escena: | |
- TBD | |
* Referencias: | |
- Sagas: | |
-- http://microservices.io/patterns/data/saga.html | |
-- https://www.youtube.com/watch?v=YPbGW3Fnmbc | |
- Versioning of events in Event Sourced systems: | |
-- https://www.infoq.com/news/2017/07/versioning-event-sourcing | |
-- https://leanpub.com/esversioning | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment