BcnDevCon12 - CQRS explicado a mi compañero arquitecto

621 views
534 views

Published on

La introducción a CQRS presentada por Edin Kapic y Marçal Serrate en la conferencia BcnDevCon 2012.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
621
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
13
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

BcnDevCon12 - CQRS explicado a mi compañero arquitecto

  1. 1. Edin Kapić & Marçal SerrateCQRS (explicado a micompañero arquitecto)BARCELONA DEVELOPERS CONFERENCE 20126 dic – 7 dic – 8 dic
  2. 2. www.pasiona.cominfo@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. 3. Qué esMicrosoft Innovación Pasiónsocio 100% alineado ligada a la mejora continua y basada somos grandes entusiastas de todopartner 100% especializado en las nuevas oportunidades tecnológicas aquello que creamos y vemos crecerDesarrollo Tecnología Experienciacapacidad 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ónEspecialización Conocimiento Valores humanosofrecemos soluciones a medida con adquirido a través de la realización de guía de lo que hacemos y pretendemoslas 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. 4. ServiciosConsultoría Proyectos Auditoría Servicios Social Formación profesionales Media Innovación Azure
  5. 5. Edin KapićKey Consultant en pasiona ConsultingDivulgador Tecnológico en Fundación Techdencias @ekapicekapic@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
  6. 6. @techdencias@pasiona #BDC1 2
  7. 7. AgendaCQRS.About();CQRS.Query();CQRS.Update();CQRS.Implement();CQRS.Demo();(CQRS.Q && CQRS.A);
  8. 8. CQRS.About();
  9. 9. RDBMSModelo conocido y cómodo.
  10. 10. Pero…No escala bien.
  11. 11. Teorema CAP "Bin Laden"Explica por que no podemos tenerlo todo.Eric Brewer, 2002
  12. 12. ConsistenciaConsistencia eventual
  13. 13. 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.
  14. 14. ¿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
  15. 15. PresentaciónControlador DTO Servicios DominioRepositorio SQL DB
  16. 16. Front-End Presentación Controlador DTO Back-End Servicios Dominio Repositorio SQLBase de datos DB
  17. 17. Presentación Controlador de servicios DTO ComandosServicios de consulta Servicios de comandos Acceso a datos Dominio RepositorioConsultas SQL Sincronización Almacén de DB consulta
  18. 18. Presentación Controlador de serviciosQuery 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
  19. 19. CQRS.Query();
  20. 20. Query Modelo de lectura != modelo de dominio View Model, Data Binding “One Table per View” NoSQL La denormalización es bienvenida
  21. 21. CQRS.Update();
  22. 22. 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
  23. 23. 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....
  24. 24. CQRS.Implement();
  25. 25. ACID BASEDocumentStore IndexStore Insert Delete Queries Update
  26. 26. Microsoft SharePoint 2013
  27. 27. CQRS.Demo();
  28. 28. MoralejaCQRS no es la respuesta a todo pero es unamanera diferente de atacar algunos problemasde las aplicaciones actuales.http://www.udidahan.com/2009/12/09/clarified-cqrs/https://github.com/ncqrs/ncqrshttp://msdn.microsoft.com/en-us/library/jj554200.aspx
  29. 29. Edin Kapić CQRS.Q && CQRS.A @ekapicekapic@pasiona.comekapic@techdencias.netMarçal Serrate @mserratemserrate@pasiona.comwww.serrate.net
  30. 30. BARCELONA DEVELOPERS CONFERENCE 2012 | 6 dic – 7 dic – 8 dic

×