Bobby R (3) [Avatar] Offline
When I first encountered CQRS, I thought of it as a way to scale the read side and the write side independently, and by that I meant scaling the number of nodes handling queries vs the number of nodes handling commands.

In the book you talk about CQRS views, so it seems like we are not just talking about "scaling" as in handling more traffic, but also scaling out to different types of queries for different teams. In other words, the team that owns the data model gets to control how it is written to (command side), but they are much more open to other implementations of the reads (query side). One reason they can do that is that adding a new query doesn't result in needing to modify any business logic on the write side.

I wonder if the concept of a "collaborative domain" would also be helpful in deciding when to apply the CQRS pattern.