3. Before we start
● Who knows what CQRS is?
● Who did already use CQRS in production?
● Who knows what Event Sourcing is?
● Who did already use Event Sourcing in production?
4. What CQRS is not?
● CQRS is not an architecture
● CQRS is not eventual consistency
● CQRS is not messaging
● CQRS is not having separated models for reading and writing
● CQRS is not eventing
● CQRS is not event sourcing
● CQRS is not CQS
● CQRS is not new
● CQRS is not hard to implement
5. What is CQRS?
● Command and Query Responsibility Segregation
● It is essentially the creation of two objects
where there was previously only one
13. Event Sourcing benefits
● It is possible to create data-views specialized for
certain cases
● It enables a 100% reliable audit log of the
changes made to a business entity
● It decouples the representation of current state in the
domain from the storage
● It facilitates the migration from monolithic
applications into smaller pieces
● It enables temporal queries that determine the state of
an entity at any point in time
14. Event Sourcing drawbacks
● It is a different and unfamiliar style of programming
and so there is a learning curve
● You’ll also probably have to introduce a little
more infrastructure to get up and running
● Not so simple onboarding of new team members
● Handling schema changes is not so simple as
the events are immutable
● To handle entities with long and complex
lifespans requires some “snapshot” strategy