Command Query Responsibility Segregation (CQRS)

Taken from Uncle Bob

CQRS is useful in some places, but not in others. Many systems do fit a CRUD mental model, and so should be done in that style. CQRS is a significant mental leap for all concerned, so shouldn't be tackled unless the benefit is worth the jump. While I have come across successful uses of CQRS, so far the majority of cases I've run into have not been so good, with CQRS seen as a significant force for getting a software system into serious difficulties.

Main benefit is in handling high performance applications. CQRS allows you to separate the load from reads and writes allowing you to scale each independently.

Last updated