Diseño de arquitecturas
escalables con CQRS
Escalando que es gerundio!!!
Bertrand Meyer (via Wikipedia)
“Command Query Separation”
“every method should either be a command that performs an
action...
■ “Command Query Responsibility Segregation”
■ Es un patrón que se basa en el principio CQS.
■ No es una arquitectura.
¿Qu...
CQRS como táctica de guerra
■ Aislamiento
■ Agilidad
■ Pruebas
■ Mantenimiento
■ Escalabilidad
■ Disponibilidad
■ ...
Beneficios de usar CQRS
CQRS por un niño de 10 años
CQRS en serio
■ El 90% del acceso a nuestras aplicaciones son consultas
■ Muy rápidas
■ Cachealas!
■ Consitencia eventual
Consultas
■ Aplicable a todo el sistema o solo a una parte (Base de datos)
■ Es lo opuesto a la consistencia de datos
■ Es una carac...
Teorema de CAP
■ Son directivas del dominio para ejecutar una acción
■ Pueden ser rechazados por el dominio (Validaciones/Negocio)
■ Pued...
Perdiendo el miedo a los comandos
public class PlaceOrderCommand
{
//properties
public readonly Guid OrderId;
public reado...
■ Son el resultado de una acción que ha ocurrido en el dominio
■ Nunca pueden ser rechazados
■ Siempre en pasado
■ OrderPl...
■ Recursos para ejecutar nuestro código
 Web Roles (IIS) y Worker Roles (w/o IIS, OWIN + Katana)
■ Colas
 Windows Azure ...
Probablemente no 
¿Debería usar CQRS?
¿Preguntas?
@gwab_es - #GWAB #Spain
http://spain.windowsazurebootcamp.org/
Gwab   diseño de arquitecturas escalables con cqrs
Upcoming SlideShare
Loading in …5
×

Gwab diseño de arquitecturas escalables con cqrs

409 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
409
On SlideShare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • O lo que es lo mismo, usar un modelo para actualizar la información y otro para leerla.No podemos usar CQRS en toda la aplicación entera.
  • Lo importante de la imagen es ver que CQRS es más fácil de lo que nos pensamos
  • Lo importante de la imagen es ver que CQRS es más fácil de lo que nos pensamos
  • Gwab diseño de arquitecturas escalables con cqrs

    1. 1. Diseño de arquitecturas escalables con CQRS
    2. 2. Escalando que es gerundio!!!
    3. 3. Bertrand Meyer (via Wikipedia) “Command Query Separation” “every method should either be a command that performs an action, or a query that returns data to the caller, but not both. In other words, asking a question should not change the answer.” ¿CQS? ¿Pero esto no iba de CQRS?
    4. 4. ■ “Command Query Responsibility Segregation” ■ Es un patrón que se basa en el principio CQS. ■ No es una arquitectura. ¿Qué es CQRS?
    5. 5. CQRS como táctica de guerra
    6. 6. ■ Aislamiento ■ Agilidad ■ Pruebas ■ Mantenimiento ■ Escalabilidad ■ Disponibilidad ■ ... Beneficios de usar CQRS
    7. 7. CQRS por un niño de 10 años
    8. 8. CQRS en serio
    9. 9. ■ El 90% del acceso a nuestras aplicaciones son consultas ■ Muy rápidas ■ Cachealas! ■ Consitencia eventual Consultas
    10. 10. ■ Aplicable a todo el sistema o solo a una parte (Base de datos) ■ Es lo opuesto a la consistencia de datos ■ Es una característica natural de los sistemas distribuidos y escalables Consistencia eventual
    11. 11. Teorema de CAP
    12. 12. ■ Son directivas del dominio para ejecutar una acción ■ Pueden ser rechazados por el dominio (Validaciones/Negocio) ■ Puede dar resultado a 0:n eventos ■ Siempre en imperative ■ PlaceOrder, no OrderPlaced ■ Un manejador por commando ■ Pueden ser encolados Comandos
    13. 13. Perdiendo el miedo a los comandos public class PlaceOrderCommand { //properties public readonly Guid OrderId; public readonly string Comment; //ctor public PlaceOrderCommand(Guid id, string comment) { OrderId = id; Comment = comment; } }
    14. 14. ■ Son el resultado de una acción que ha ocurrido en el dominio ■ Nunca pueden ser rechazados ■ Siempre en pasado ■ OrderPlaced, no PlaceOrder Eventos
    15. 15. ■ Recursos para ejecutar nuestro código  Web Roles (IIS) y Worker Roles (w/o IIS, OWIN + Katana) ■ Colas  Windows Azure Storage Queues  Windows Azure Service Bus Queues ■ Almacenamiento persistente  SQL Azure  Hadoop ■ Notificaciones en tiempo real  SignalR con Redis backplane ■ Vistas rápidas  Azure Cache  NoSQL (MongoDb)  Redis CQRS en Microsoft Azure
    16. 16. Probablemente no  ¿Debería usar CQRS?
    17. 17. ¿Preguntas?
    18. 18. @gwab_es - #GWAB #Spain http://spain.windowsazurebootcamp.org/

    ×