Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Edin Kapić & Marçal SerrateCQRS (explicado a micompañero arquitecto)BARCELONA DEVELOPERS CONFERENCE 20126 dic – 7 dic – 8 ...
www.pasiona.cominfo@pasiona.com(+34) 669 333 333@pasiona            Barcelona                 Bilbao                      ...
Qué esMicrosoft                                 Innovación                                      Pasiónsocio 100% alineado ...
ServiciosConsultoría   Proyectos       Auditoría              Servicios                    Social      Formación          ...
Edin KapićKey Consultant en pasiona ConsultingDivulgador Tecnológico en Fundación Techdencias   @ekapicekapic@pasiona.com ...
@techdencias@pasiona    #BDC1    2
AgendaCQRS.About();CQRS.Query();CQRS.Update();CQRS.Implement();CQRS.Demo();(CQRS.Q && CQRS.A);
CQRS.About();
RDBMSModelo conocido y cómodo.
Pero…No escala bien.
Teorema CAP "Bin Laden"Explica por que no podemos tenerlo todo.Eric Brewer, 2002
ConsistenciaConsistencia eventual
Consistencia eventual El precio que pagamos según la CAP.* Ventana de inconsistencia     Datos viejos*En RDBMS pagamos ...
¿Datos viejos? Formulario en papel  aplicación CRUD   Ideal para una aplicación individual Aplicación multiusuario o c...
PresentaciónControlador      DTO Servicios DominioRepositorio         SQL    DB
Front-End                Presentación                Controlador                      DTO                               Ba...
Presentación                          Controlador de servicios                    DTO                               Comand...
Presentación                                  Controlador de serviciosQuery                       DTO                     ...
CQRS.Query();
Query Modelo de lectura != modelo de dominio View Model, Data Binding “One Table per View” NoSQL La denormalización e...
CQRS.Update();
Command Captura la intención, no sólo los datos Es un mensaje, no contiene lógica de dominio Es asíncrono por naturalez...
Eventos Cambio en el estado del sistema Se suelen usar para disparar la sincronización  con el modelo de consulta Funda...
CQRS.Implement();
ACID          BASEDocumentStore   IndexStore     Insert    Delete        Queries    Update
Microsoft SharePoint 2013
CQRS.Demo();
MoralejaCQRS no es la respuesta a todo pero es unamanera diferente de atacar algunos problemasde las aplicaciones actuales...
Edin Kapić               CQRS.Q &&                            CQRS.A   @ekapicekapic@pasiona.comekapic@techdencias.netMarç...
BARCELONA DEVELOPERS CONFERENCE 2012                       | 6 dic – 7 dic – 8 dic
BcnDevCon12 - CQRS explicado a mi compañero arquitecto
BcnDevCon12 - CQRS explicado a mi compañero arquitecto
BcnDevCon12 - CQRS explicado a mi compañero arquitecto
Upcoming SlideShare
Loading in …5
×

BcnDevCon12 - CQRS explicado a mi compañero arquitecto

682 views

Published on

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

Published in: Technology
  • Be the first to comment

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

×