bcndevcon12 - cqrs explicado a mi compañero arquitecto

Post on 28-Jan-2015

107 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Edin Kapić & Marçal Serrate

CQRS (explicado a mi compañero arquitecto)

BARCELONA DEVELOPERS CONFERENCE 20126 dic – 7 dic – 8 dic

www.pasiona.com(+34) 669 333 333info@pasiona.com

@pasiona BarcelonaPujades 350, 10ª planta

08019 · Barcelona

BilbaoGran Vía 19-21, 2ª planta

48008 · Bilbao

Londres1 Northumberland Avenue

London · WC2N 5BW

MadridPinar 5,

28006 · Madrid

Conocimientoadquirido a través de la realización de proyectos, formación e innovación tecnológica

Innovaciónligada a la mejora continua y basadaen las nuevas oportunidades tecnológicas

Tecnologíasoluciones a cada una de las necesidadesempresariales que se platean en cada ámbito

Valores humanosguía de lo que hacemos y pretendemosque nos enseña y nos conduce día a día

Pasiónsomos grandes entusiastas de todo aquello que creamos y vemos crecer

Experienciao la garantía de la habilidad derivada de años de vivencias y observación

Microsoftsocio 100% alineado partner 100% especializado

Desarrollocapacidad para realizar proyectos deámbito tecnológico con un fin de mejora

Especializaciónofrecemos soluciones a medida con las mejores herramientas tecnológicas

Qué es

SocialMedia

Servicios profesionales

Consultoría Proyectos

Innovación Azure

Formación

Auditoría

Servicios

Edin Kapić

@ekapic

Key Consultant en pasiona ConsultingDivulgador Tecnológico en Fundación Techdencias

ekapic@pasiona.com ekapic@techdencias.net

Marçal Serrate

@mserrate

Key Consultant en pasiona ConsultingDivulgador Tecnológico en Fundación Techdencias

mserrate@pasiona.comwww.serrate.net

@techdencias

@pasiona

#BDC12

Agenda

CQRS.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

Consistencia eventual

Consistencia

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. :-(

¿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

Presentación

Controlador

Servicios

Dominio

DTO

Repositorio

DB

SQL

Presentación

Controlador

Servicios

Dominio

DTO

Repositorio

DB

SQL

Front-End

Back-End

Base de datos

Presentación

Controlador de servicios

Servicios de comandos

Dominio

DTO

Repositorio

DB

SQL

Servicios de consulta

Comandos

Almacén de consulta

Consultas

Acceso a datos

Sincronización

Presentación

Controlador de servicios

Servicios de comandos

Dominio

DTO

Repositorio

DB

SQL

Servicios de consulta

Comandos

Almacén de consulta

Consultas

Acceso a datos

Sincronización

Query Command

Responsibility

Segregation

CQRS.Query();

Query

Modelo de lectura != modelo de dominio View Model, Data Binding “One Table per View” NoSQL La denormalización es bienvenida

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 naturaleza Es un verbo Dispara una actualización del modelo de

dominio

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....

CQRS.Implement();

ACID BASE

DocumentStore IndexStore

InsertDeleteUpdate

Queries

Microsoft SharePoint 2013

CQRS.Demo();

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

Edin Kapić@ekapic

ekapic@pasiona.comekapic@techdencias.net

CQRS.Q &&CQRS.A

Marçal Serrate@mserrate

mserrate@pasiona.comwww.serrate.net

BARCELONA DEVELOPERS CONFERENCE 2012

| 6 dic – 7 dic – 8 dic

top related