The Art of CQRS

Slava Pocheptsov
Slava PocheptsovSoftware Enterpreneur
The Art of CQRS,[object Object],Slava Pocheptsov,[object Object],Tech Leader,[object Object],pocheptsov,[object Object],pocheptsov@gmail.com,[object Object]
1,[object Object],Why?,[object Object],Distributed System,[object Object],Complex Enterprise Applications,[object Object],High Load,[object Object],Parallel Development,[object Object]
2a,[object Object],Current Warrior's Way,[object Object],Layered Onion Structure,[object Object]
2b,[object Object],Current Warrior's Way,[object Object],SOA,[object Object]
2c,[object Object],Current Warrior's Way,[object Object],Custom Solution,[object Object]
3a,[object Object],Overview,[object Object],CQRS – ,[object Object],The Cult of,[object Object],Shiny Things,[object Object],Command Query,[object Object],Responsibility,[object Object],Segregation,[object Object]
Overview,[object Object],CQRS as a concept is a way of designing disconnected solutions,[object Object],3b,[object Object]
4,[object Object],Reinvent the Wheel,[object Object],C     Q     R      S,[object Object]
5a,[object Object],Meaning,[object Object]
Meaning,[object Object],CQRS Principle,[object Object],CQRS Architecture,[object Object],DDDD,[object Object],How, What, Why?,[object Object],5b,[object Object]
6,[object Object],Principle,[object Object]
7,[object Object],Architectures,[object Object]
8,[object Object],DDDD,[object Object],DDD - Aggregate Root,[object Object],Event Sourcing,[object Object],CQRS,[object Object],Messaging System,[object Object]
Queries,[object Object],View Model instead of DTO,[object Object],Query Data Storage,[object Object],Scaling ,[object Object],9,[object Object]
10,[object Object],Commands,[object Object],Perform,[object Object],Validation,[object Object],Rethinking UI,[object Object],Queue,[object Object],Scaling,[object Object],Independent,[object Object],Fallacy reuse,[object Object]
11,[object Object],Command Handler Combinations,[object Object]
Domain Model,[object Object],Aggregate Root within Command Handler,[object Object],Context,[object Object],Active Record,[object Object],SPs,[object Object],Monkey input,[object Object],12,[object Object]
13,[object Object],Events,[object Object],Happened,[object Object]
14,[object Object],Storage,[object Object],Barrels,[object Object]
15,[object Object],Architecture Reminder,[object Object]
But…,[object Object]
Caveats,[object Object],Complexity?,[object Object],Out of order,[object Object],Distributed Transaction,[object Object],Data staleness,[object Object],Sagas,[object Object],Domain Design,[object Object],Focus on Domain Validation,[object Object],Task-Based UI,[object Object],Knowledge,[object Object],16,[object Object]
17,[object Object],Value,[object Object],Saga oriented! first-one-wins, or last-one-wins,[object Object],Team collaboration,[object Object],Scaling,[object Object],Simplify complex logic support,[object Object],Part of SOA,[object Object],BASE,[object Object]
No,[object Object],     numbers,[object Object],or,[object Object],charts,[object Object]
Implementation,[object Object],nCQRS,[object Object],Axon Framework,[object Object],Fohjin,[object Object],Lokad.CQRS,[object Object],BankSimplistic,[object Object],SimpleCQRS,[object Object],Agr.CQRS,[object Object],JDon,[object Object],18,[object Object]
Demo,[object Object]
19,[object Object],Production,[object Object],LokadSalescast,[object Object],Amazon (SOA),[object Object],No public available info about Enterprise systems,[object Object],Tvene,[object Object]
20,[object Object],Future,[object Object]
The Art of CQRS
Answers,[object Object],http://blog.pocheptsov.com/p/cqrs-references.html,[object Object],http://cqrsinfo.com/http://codebetter.com/gregyoung/http://abdullin.com/http://groups.google.com/group/dddcqrshttp://blog.jonathanoliver.com/http://igor.quatrocode.com/http://cre8ivethought.com/http://www.dennisdoomen.net/http://thinkddd.com/http://www.udidahan.com/,[object Object]
@pocheptsov,[object Object],31337,[object Object]
1 of 31

Recommended

Micro-services, Упрощаем монолитные приложения by
Micro-services, Упрощаем монолитные приложенияMicro-services, Упрощаем монолитные приложения
Micro-services, Упрощаем монолитные приложенияRinat Abdullin
4K views64 slides
SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e... by
SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...
SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...Rinat Abdullin
2.1K views20 slides
Exploring CQRS and Event Sourcing by
Exploring CQRS and Event SourcingExploring CQRS and Event Sourcing
Exploring CQRS and Event SourcingChristopher Bennage
1.8K views21 slides
Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Cam... by
Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Cam...Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Cam...
Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Cam...Bill Wilder
2.6K views47 slides
Azure and cloud design patterns by
Azure and cloud design patternsAzure and cloud design patterns
Azure and cloud design patternsVenkatesh Narayanan
1.5K views55 slides
Zero to 60 with Azure Cosmos DB by
Zero to 60 with Azure Cosmos DBZero to 60 with Azure Cosmos DB
Zero to 60 with Azure Cosmos DBAdnan Hashmi
960 views95 slides

More Related Content

Similar to The Art of CQRS

Big Data Redis Mongodb Dynamodb Sharding by
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingAraf Karsh Hamid
207 views88 slides
Dockercon2015_paypal by
Dockercon2015_paypalDockercon2015_paypal
Dockercon2015_paypalahunnargikar
374 views17 slides
Anomaly Detection at Scale by
Anomaly Detection at ScaleAnomaly Detection at Scale
Anomaly Detection at ScaleJeff Henrikson
978 views47 slides
線上遊戲與雲端運算 by
線上遊戲與雲端運算線上遊戲與雲端運算
線上遊戲與雲端運算Sheng-Wei (Kuan-Ta) Chen
3.3K views79 slides
Introduction to Apache Cassandra by
Introduction to Apache CassandraIntroduction to Apache Cassandra
Introduction to Apache CassandraRobert Stupp
13.8K views99 slides
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一 by
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一scalaconfjp
3.7K views37 slides

Similar to The Art of CQRS(20)

Big Data Redis Mongodb Dynamodb Sharding by Araf Karsh Hamid
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb Sharding
Araf Karsh Hamid207 views
Dockercon2015_paypal by ahunnargikar
Dockercon2015_paypalDockercon2015_paypal
Dockercon2015_paypal
ahunnargikar374 views
Introduction to Apache Cassandra by Robert Stupp
Introduction to Apache CassandraIntroduction to Apache Cassandra
Introduction to Apache Cassandra
Robert Stupp13.8K views
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一 by scalaconfjp
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
scalaconfjp3.7K views
Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali? by SegFaultConf
Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?
Robert Pankowecki - Czy sprzedawcy SQLowych baz nas oszukali?
SegFaultConf250 views
Data relay introduction to big data clusters by Chris Adkin
Data relay introduction to big data clustersData relay introduction to big data clusters
Data relay introduction to big data clusters
Chris Adkin347 views
CQRS and ES with Lagom by Miel Donkers
CQRS and ES with LagomCQRS and ES with Lagom
CQRS and ES with Lagom
Miel Donkers1.3K views
Jump Start on Apache Spark 2.2 with Databricks by Anyscale
Jump Start on Apache Spark 2.2 with DatabricksJump Start on Apache Spark 2.2 with Databricks
Jump Start on Apache Spark 2.2 with Databricks
Anyscale976 views
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ... by Databricks
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
Databricks5K views
Enter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto Edition by Mark Broadbent
Enter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto EditionEnter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto Edition
Enter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto Edition
Mark Broadbent1K views
StrongLoop Overview by Shubhra Kar
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
Shubhra Kar2.3K views
C# Client to Cloud by Stuart Lodge
C# Client to CloudC# Client to Cloud
C# Client to Cloud
Stuart Lodge1.5K views
Couchbase Overview - Monterey Bay Information Technologists Meetup 02.15.17 by Aaron Benton
Couchbase Overview - Monterey Bay Information Technologists Meetup 02.15.17Couchbase Overview - Monterey Bay Information Technologists Meetup 02.15.17
Couchbase Overview - Monterey Bay Information Technologists Meetup 02.15.17
Aaron Benton235 views
Structuring Spark: DataFrames, Datasets, and Streaming by Michael Armbrust by Spark Summit
Structuring Spark: DataFrames, Datasets, and Streaming by Michael ArmbrustStructuring Spark: DataFrames, Datasets, and Streaming by Michael Armbrust
Structuring Spark: DataFrames, Datasets, and Streaming by Michael Armbrust
Spark Summit8.8K views
Greenfield Development with CQRS by David Hoerster
Greenfield Development with CQRSGreenfield Development with CQRS
Greenfield Development with CQRS
David Hoerster2.4K views
Spark and cassandra (Hulu Talk) by Jon Haddad
Spark and cassandra (Hulu Talk)Spark and cassandra (Hulu Talk)
Spark and cassandra (Hulu Talk)
Jon Haddad4.1K views

Recently uploaded

iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...Bernd Ruecker
33 views69 slides
Democratising digital commerce in India-Report by
Democratising digital commerce in India-ReportDemocratising digital commerce in India-Report
Democratising digital commerce in India-ReportKapil Khandelwal (KK)
15 views161 slides
Vertical User Stories by
Vertical User StoriesVertical User Stories
Vertical User StoriesMoisés Armani Ramírez
12 views16 slides
Tunable Laser (1).pptx by
Tunable Laser (1).pptxTunable Laser (1).pptx
Tunable Laser (1).pptxHajira Mahmood
24 views37 slides
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveNetwork Automation Forum
30 views35 slides
virtual reality.pptx by
virtual reality.pptxvirtual reality.pptx
virtual reality.pptxG036GaikwadSnehal
11 views15 slides

Recently uploaded(20)

iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker33 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10237 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb13 views
handbook for web 3 adoption.pdf by Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex22 views
Attacking IoT Devices from a Web Perspective - Linux Day by Simone Onofri
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day
Simone Onofri15 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec12 views
The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada126 views

The Art of CQRS

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 30.
  • 31.