Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Do you really want to delete this prezi?
Neither you, nor the coeditors you shared it with will be able to recover it again.
Make your likes visible on Facebook?
Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.
CQRS & Event Sourcing. Who is who
Transcript of CQRS & Event Sourcing. Who is who
Why all the buzz?
Flexible and fast data reporting
Scalability & optimization
by Rinat Abdullin
Thee tier architecture
Business logic processes both data modifications and data queries
Store has to manage concurrent reads and writes
3-rd normal form not optimal for reports
CQRS architecture - separate data stores
SQL Server Integration Services
CQRS architecture - messaging
Business logic exists in two different places
Relational store is actually not used much anymore
CQRS architecture - event sourcing
CQRS - Basic principles and characteristics
Event sourcing – basic
principles and purpose
each component optimized for its own purpose
each component can be replicated for horizontal scaling
components can be efficiently reused
rely on standard/available services
components can be replicated for fault-tolerance
event store contains full history of data changes in the usable form
CQRS architecture - occasionally connected clients
Built for Azure, supports standalone deployment
Mostly includes messaging infrastructure and message-to-handler mapping and invocation
Considered as a big mistake by its author :)
uses Jonathan Oliver's libs
Jonathan Oliver libs
When and why using CQRS
Rich Domain (DDD)
paradigm shift (learning curve)
not supported well by existing tools
the problems CQRS addresses can be resolved using different, more standard means
encourage task based UI
encourage DDD & dealing with complexity
encourage great read performance for any kind of reports
Based on Greg Young's sample
Core capabilities + some additional goods like aggregates repository, optimistic concurrency, etc.