BcnDevCon12 - CQRS explicado a mi compañero arquitecto
1. Edin Kapić & Marçal Serrate
CQRS (explicado a mi
compañero arquitecto)
BARCELONA DEVELOPERS CONFERENCE 2012
6 dic – 7 dic – 8 dic
2. www.pasiona.com
info@pasiona.com
(+34) 669 333 333
@pasiona Barcelona Bilbao Madrid Londres
Pujades 350, 10ª planta Gran Vía 19-21, 2ª planta Pinar 5, 1 Northumberland Avenue
08019 · Barcelona 48008 · Bilbao 28006 · Madrid London · WC2N 5BW
3. Qué es
Microsoft Innovación Pasión
socio 100% alineado ligada a la mejora continua y basada somos grandes entusiastas de todo
partner 100% especializado en las nuevas oportunidades tecnológicas aquello que creamos y vemos crecer
Desarrollo Tecnología Experiencia
capacidad para realizar proyectos de soluciones a cada una de las necesidades o la garantía de la habilidad derivada
ámbito tecnológico con un fin de mejora empresariales que se platean en cada ámbito de años de vivencias y observación
Especialización Conocimiento Valores humanos
ofrecemos soluciones a medida con adquirido a través de la realización de guía de lo que hacemos y pretendemos
las mejores herramientas tecnológicas proyectos, formación e innovación tecnológica que nos enseña y nos conduce día a día
4. Servicios
Consultoría Proyectos Auditoría
Servicios Social Formación
profesionales Media
Innovación Azure
5.
6. Edin Kapić
Key Consultant en pasiona Consulting
Divulgador Tecnológico en Fundación Techdencias
@ekapic
ekapic@pasiona.com ekapic@techdencias.net
Marçal Serrate
Key Consultant en pasiona Consulting
Divulgador Tecnológico en Fundación Techdencias
@mserrate
mserrate@pasiona.com www.serrate.net
14. Consistencia eventual
El precio que pagamos según la CAP.*
Ventana de inconsistencia
Datos viejos
*En RDBMS pagamos con la no tolerancia a particiones. No hay nada gratis.
15. ¿Datos viejos?
Formulario en papel aplicación CRUD
Ideal para una aplicación individual
Aplicación multiusuario o cliente-servidor
“Datos viejos” por naturaleza
Nos inventamos varias cosas para huir de
este hecho, sin éxito
19. Front-End
Presentación
Controlador
DTO
Back-End
Servicios
Dominio
Repositorio
SQL
Base de datos
DB
20. Presentación
Controlador de servicios
DTO Comandos
Servicios de consulta Servicios de comandos
Acceso a datos Dominio
Repositorio
Consultas
SQL
Sincronización
Almacén de
DB
consulta
21. Presentación
Controlador de servicios
Query DTO Comandos Command
Servicios de consulta Servicios de comandos
Acceso a datos Responsibility Dominio
Segregation
Repositorio
Consultas
SQL
Sincronización
Almacén de
DB
consulta
25. Command
Captura la intención, no sólo los datos
Es un mensaje, no contiene lógica de dominio
Es asíncrono por naturaleza
Es un verbo
Dispara una actualización del modelo de
dominio
26. Eventos
Cambio en el estado del sistema
Se suelen usar para disparar la sincronización
con el modelo de consulta
Fundamentos del Event Sourcing
Me gusta que
me haga esa
pregunta....
31. Moraleja
CQRS no es la respuesta a todo pero es una
manera diferente de atacar algunos problemas
de las aplicaciones actuales.
http://www.udidahan.com/2009/12/09/clarified-cqrs/
https://github.com/ncqrs/ncqrs
http://msdn.microsoft.com/en-us/library/jj554200.aspx