Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start 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.

DeleteCancel

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.

No, thanks

CQRS & Event Sourcing. Who is who

Introduction to CQRS and event sourcing
by

Andery Chekh

on 25 August 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of CQRS & Event Sourcing. Who is who

CQRS & Event Sourcing
Why all the buzz?
CQRS benefits:
Complexity management
Flexible and fast data reporting
Scalability & optimization
Reliability
Occasional connectivity
by Rinat Abdullin
https://abdullin.com/post/top-10-reasons-to-do-cqrs-in-a-pdf/
Thee tier architecture
Create/Update/Delete
Read
CQRS architecture
Business logic processes both data modifications and data queries
Command
Query
Store has to manage concurrent reads and writes
Low performance
Locking
3-rd normal form not optimal for reports
Command
Query
Denormalization
CQRS architecture - separate data stores
Command
Query
Translation
SQL Server Integration Services
Triggers
Transformation logic
CQRS architecture - messaging
Business logic exists in two different places
Relational store is actually not used much anymore
V sad!
(the garden)
CQRS architecture - event sourcing
CQRS - Basic principles and characteristics
Event sourcing – basic
principles and purpose
Scalability
each component optimized for its own purpose
each component can be replicated for horizontal scaling
Low coupling
components can be efficiently reused
rely on standard/available services
Reliability
components can be replicated for fault-tolerance
event store contains full history of data changes in the usable form
CQRS architecture - occasionally connected clients
Frameworks
and libraries

Lokad.CQRS
http://lokad.github.com/lokad-cqrs/
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 :)
https://abdullin.com/lokad-cqrs-retrospective/

Ncqrs
https://github.com/ncqrs/ncqrs
feature rich
uses Jonathan Oliver's libs
Jonathan Oliver libs
https://github.com/joliver
EventStore
CommonDomain
NanoMessageBus
When and why using CQRS
Rich Domain (DDD)
Complex domain
Scalability
Drawbacks
paradigm shift (learning curve)
not supported well by existing tools
the problems CQRS addresses can be resolved using different, more standard means
Benefits
encourage task based UI
encourage DDD & dealing with complexity
encourage scalability
encourage great read performance for any kind of reports
Eventual consistency
CQRSlite
https://github.com/gautema/CQRSlite
Based on Greg Young's sample
Core capabilities + some additional goods like aggregates repository, optimistic concurrency, etc.
Full transcript