CQRS/DDD by Greg Young

Rinat Abdullin · 39K views · 2012 · 1:49:29

Open on YouTube

Software architecture & designDistributed systemstalk

Why Stack Overflow recommends it

Stack Overflow users link it as the go-to overview when answering questions about CQRS, event stores and DDD bounded contexts.

Recommended by 3 people across 3 different months, 2012 to 2021.

What it is

A nearly two-hour conference talk by Greg Young on CQRS and Domain Driven Design, recorded at Professional.NET 2011 in Vienna. It covers the ideas behind separating commands from queries, event-based approaches, and how bounded contexts relate to domain language. It is posted by Rinat Abdullin, whose own CQRS-in-the-cloud talk follows it.

What people said

Recommends Craig Wilson · 2012-02 · Stack Overflow · on “When to use an Eventstore”

That's a lot to ask for in a stackoverflow question. One thing missing from your question is what its disadvantages are? Anyways, rather than answer here, I'd like to provide some links to videos for you to watch. There is a lot of context that needs to be set before the answers to this question make sense. Greg Young: There is a ~2 hour video here [this video] that provides a great overview of everything you are asking for in your question. There is also a ~6 hour online class here [LINK] . Udi Dahan: There is a 1 hour video here [LINK] that gives perspective on when to use these technologies. Mailing List: There is a group here [LINK] where you can ask all your questions and have a nice discuss

Recommends Bruno · 2012-08 · Stack Overflow · on “Best way to comunicate between ASP.NET app and Worker Role”

I recommend taking a look at CQRS, which stands for Command Query Responsibility Segregation. The purpose of this architecture is to create systems that are loosely coupled, extensible, and scalable. [LINK] Greg Young invented this system and there are a number of open source implementations available to expedite the building of distributed, scalable systems. Before him was Bertrand Meyer, who laid the groundwork. The oversimplified concept is that a series of queues separate web roles and worker roles. So when users submit work from a web role, that work gets queued up, and later picked up by a worker role. A trade off is that there is eventual data consistency, not immediate consistency. T

Recommends rad · 2014-08 · Stack Overflow · on “Breaking application to bounded contexts”

Technical, definitely not... Did you heard about Event Storming [LINK] ? I think it is a good way to found your boundaries... Bounded context is about language, it is not technical or architectural think, but more about your domain and the words used by your Domain Expert : Greg Young explain-it well in the beginning of this talk [this video] When you are modelling your Domain Model, you have to define your boundaries (for eCommerce, Product is not the same concept with the same attributes in different contexts : catalog, shopping... The same thing about customer... And you don't have to use the same entity for each context, so every context have its specific Ubiguitous language), think about thi

Cites VoiceOfUnreason · 2021-07 · Stack Overflow · on “Update two aggregate instances in a single transaction”

In DDD this would not be allowed Not really true - there's a lot going on here. What Evans (2003), and also Vaughn 2013, wrote is that transaction management is not a domain model concern, but rather that transaction control belongs in the application code. There is, however, a real concern with changing multiple aggregates at the same time: to do so assumes that you can acquire locks on those entities at the same time and also commit all of those changes together. That's relatively straightforward when all of the aggregates that you are changing are stored in a single relational database; but it becomes very difficult when the aggregates are stored in different places. If you design your sy