SlideShare une entreprise Scribd logo
1  sur  12
CQRS, Event Sourcing Simplicity / Complexity AshicMahtabhttp://www.heartysoft.com@ashic
UI DB Schema Validation DTO Transformation Controller DTO Transformation Service Repository “Domain” IoC Containers Projection Caching Lazy Loading Leaky “Pointless” Abstractions
Simple, right?
I Hold Data(Just the way you want it) I Did Stuff Gimme Some Data I Do Stuff Please Do Stuff Application
ReadModel I Did Stuff Gimme Some Data Domain Please Do Stuff Application
Event Bus I Hold Data(Just the way you want it) Domain I Did Stuff Gimme Some Data Read Model I Do Stuff Please Do Stuff Application Command Service
Testing When_doing_tranche_payment_with… What about changes? Does “refactoring” require you to change tests? That’s not refactoring. Is the “BDD” output really human readable?
Testing with Events Given:-An account with account holder named “John”, account id=1243, account type=Silver-Account 1243 is debited £200 When a request is made to withdraw £300 from account 1243 The request should fail stating “Account limit will be exceeded” as the reason. [pass]
Adding new features to existing application
Performance
Resources www.cqrsinfo.com Jonathan Oliver’s blog RinatAbdullin’s blog Ncqrs (github) Google groups for CQRS / DDDD and Ncqrs

Contenu connexe

En vedette

The Museum of Tomorrow
The Museum of TomorrowThe Museum of Tomorrow
The Museum of Tomorrowfcmdsc
 
Lavoro E Immigrazione Nova Milanese 29 Aprile 2009
Lavoro E Immigrazione   Nova Milanese 29 Aprile 2009Lavoro E Immigrazione   Nova Milanese 29 Aprile 2009
Lavoro E Immigrazione Nova Milanese 29 Aprile 2009Olijohn
 
Spangas Cinekid 22 october 2009 Amsterdam
Spangas Cinekid 22 october 2009 AmsterdamSpangas Cinekid 22 october 2009 Amsterdam
Spangas Cinekid 22 october 2009 AmsterdamWilko van Iperen
 
V1mobile futures enable presentation v1
V1mobile futures enable presentation v1V1mobile futures enable presentation v1
V1mobile futures enable presentation v1Gihan Lahoud
 
Leletezés, struktúrált leletezés és RadReport
Leletezés, struktúrált leletezés és RadReportLeletezés, struktúrált leletezés és RadReport
Leletezés, struktúrált leletezés és RadReportPéter Bágyi M.D.
 
ribbit..inc_portfolio 2017©
ribbit..inc_portfolio 2017©ribbit..inc_portfolio 2017©
ribbit..inc_portfolio 2017©ribbitrocks
 
Social Networking - Personal learning networts 2013 june tafe managers
Social Networking - Personal learning networts 2013 june tafe managersSocial Networking - Personal learning networts 2013 june tafe managers
Social Networking - Personal learning networts 2013 june tafe managersGihan Lahoud
 
ISO 9712 - Vantaggi o svantaggi?
ISO 9712 - Vantaggi o svantaggi?ISO 9712 - Vantaggi o svantaggi?
ISO 9712 - Vantaggi o svantaggi?Olijohn
 
Mining of massive datasets
Mining of massive datasetsMining of massive datasets
Mining of massive datasetsAshic Mahtab
 
Wwek 1 Literacy Tues Afternoon 2009
Wwek 1 Literacy Tues Afternoon 2009Wwek 1 Literacy Tues Afternoon 2009
Wwek 1 Literacy Tues Afternoon 2009Gihan Lahoud
 
Presentatie Iv Industrie
Presentatie Iv IndustriePresentatie Iv Industrie
Presentatie Iv IndustrieTriesscheijn
 
Agriculture
AgricultureAgriculture
Agriculturejespi
 
D+c 2011 03 – focus – robles why filipinos have reason to fear their nation’...
D+c 2011 03 – focus – robles  why filipinos have reason to fear their nation’...D+c 2011 03 – focus – robles  why filipinos have reason to fear their nation’...
D+c 2011 03 – focus – robles why filipinos have reason to fear their nation’...hotmanila
 
Urogenitalis képalkotó vizsgálati protokollok
Urogenitalis képalkotó vizsgálati protokollokUrogenitalis képalkotó vizsgálati protokollok
Urogenitalis képalkotó vizsgálati protokollokPéter Bágyi M.D.
 
Aan de slag met social media
Aan de slag met social mediaAan de slag met social media
Aan de slag met social mediahallofryslan
 
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)Péter Bágyi M.D.
 
Adobe connect set up instructions str
Adobe connect set up instructions strAdobe connect set up instructions str
Adobe connect set up instructions strGihan Lahoud
 

En vedette (20)

The Museum of Tomorrow
The Museum of TomorrowThe Museum of Tomorrow
The Museum of Tomorrow
 
Lavoro E Immigrazione Nova Milanese 29 Aprile 2009
Lavoro E Immigrazione   Nova Milanese 29 Aprile 2009Lavoro E Immigrazione   Nova Milanese 29 Aprile 2009
Lavoro E Immigrazione Nova Milanese 29 Aprile 2009
 
Spangas Cinekid 22 october 2009 Amsterdam
Spangas Cinekid 22 october 2009 AmsterdamSpangas Cinekid 22 october 2009 Amsterdam
Spangas Cinekid 22 october 2009 Amsterdam
 
V1mobile futures enable presentation v1
V1mobile futures enable presentation v1V1mobile futures enable presentation v1
V1mobile futures enable presentation v1
 
Leletezés, struktúrált leletezés és RadReport
Leletezés, struktúrált leletezés és RadReportLeletezés, struktúrált leletezés és RadReport
Leletezés, struktúrált leletezés és RadReport
 
ribbit..inc_portfolio 2017©
ribbit..inc_portfolio 2017©ribbit..inc_portfolio 2017©
ribbit..inc_portfolio 2017©
 
Social Networking - Personal learning networts 2013 june tafe managers
Social Networking - Personal learning networts 2013 june tafe managersSocial Networking - Personal learning networts 2013 june tafe managers
Social Networking - Personal learning networts 2013 june tafe managers
 
ISO 9712 - Vantaggi o svantaggi?
ISO 9712 - Vantaggi o svantaggi?ISO 9712 - Vantaggi o svantaggi?
ISO 9712 - Vantaggi o svantaggi?
 
Mining of massive datasets
Mining of massive datasetsMining of massive datasets
Mining of massive datasets
 
Wwek 1 Literacy Tues Afternoon 2009
Wwek 1 Literacy Tues Afternoon 2009Wwek 1 Literacy Tues Afternoon 2009
Wwek 1 Literacy Tues Afternoon 2009
 
Mediaproof def
Mediaproof defMediaproof def
Mediaproof def
 
Presentatie Iv Industrie
Presentatie Iv IndustriePresentatie Iv Industrie
Presentatie Iv Industrie
 
Agriculture
AgricultureAgriculture
Agriculture
 
D+c 2011 03 – focus – robles why filipinos have reason to fear their nation’...
D+c 2011 03 – focus – robles  why filipinos have reason to fear their nation’...D+c 2011 03 – focus – robles  why filipinos have reason to fear their nation’...
D+c 2011 03 – focus – robles why filipinos have reason to fear their nation’...
 
Urogenitalis képalkotó vizsgálati protokollok
Urogenitalis képalkotó vizsgálati protokollokUrogenitalis képalkotó vizsgálati protokollok
Urogenitalis képalkotó vizsgálati protokollok
 
Emus
EmusEmus
Emus
 
My Wish for Jacinda
My Wish for JacindaMy Wish for Jacinda
My Wish for Jacinda
 
Aan de slag met social media
Aan de slag met social mediaAan de slag met social media
Aan de slag met social media
 
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
Képalkotó diagnosztikai eljárások szabványos negatív leletei (2009.v.3.)
 
Adobe connect set up instructions str
Adobe connect set up instructions strAdobe connect set up instructions str
Adobe connect set up instructions str
 

Similaire à Cqrs, Event Sourcing

Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Building and deploying microservices with event sourcing, CQRS and Docker (QC...Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Building and deploying microservices with event sourcing, CQRS and Docker (QC...Chris Richardson
 
Patterns and Practices for Event Design With Adam Bellemare | Current 2022
Patterns and Practices for Event Design With Adam Bellemare | Current 2022Patterns and Practices for Event Design With Adam Bellemare | Current 2022
Patterns and Practices for Event Design With Adam Bellemare | Current 2022HostedbyConfluent
 
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...HostedbyConfluent
 
Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...Chris Richardson
 
Building Microservices with Scala, functional domain models and Spring Boot -...
Building Microservices with Scala, functional domain models and Spring Boot -...Building Microservices with Scala, functional domain models and Spring Boot -...
Building Microservices with Scala, functional domain models and Spring Boot -...JAXLondon2014
 
#JaxLondon: Building microservices with Scala, functional domain models and S...
#JaxLondon: Building microservices with Scala, functional domain models and S...#JaxLondon: Building microservices with Scala, functional domain models and S...
#JaxLondon: Building microservices with Scala, functional domain models and S...Chris Richardson
 
Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)Chris Richardson
 
Practical Ruby Projects (Alex Sharp)
Practical Ruby Projects (Alex Sharp)Practical Ruby Projects (Alex Sharp)
Practical Ruby Projects (Alex Sharp)MongoSF
 
Practical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSFPractical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSFAlex Sharp
 
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...Chris Richardson
 
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...Chris Richardson
 
Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...
Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...
Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...Jim Czuprynski
 
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)Chris Richardson
 
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasJavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasChris Richardson
 
Event-Driven Systems With MongoDB
Event-Driven Systems With MongoDBEvent-Driven Systems With MongoDB
Event-Driven Systems With MongoDBAndrii Litvinov
 

Similaire à Cqrs, Event Sourcing (20)

Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Building and deploying microservices with event sourcing, CQRS and Docker (QC...Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
 
Payments On Rails
Payments On RailsPayments On Rails
Payments On Rails
 
Patterns and Practices for Event Design With Adam Bellemare | Current 2022
Patterns and Practices for Event Design With Adam Bellemare | Current 2022Patterns and Practices for Event Design With Adam Bellemare | Current 2022
Patterns and Practices for Event Design With Adam Bellemare | Current 2022
 
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
 
When the connection fails
When the connection failsWhen the connection fails
When the connection fails
 
Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...
 
Building Microservices with Scala, functional domain models and Spring Boot -...
Building Microservices with Scala, functional domain models and Spring Boot -...Building Microservices with Scala, functional domain models and Spring Boot -...
Building Microservices with Scala, functional domain models and Spring Boot -...
 
#JaxLondon: Building microservices with Scala, functional domain models and S...
#JaxLondon: Building microservices with Scala, functional domain models and S...#JaxLondon: Building microservices with Scala, functional domain models and S...
#JaxLondon: Building microservices with Scala, functional domain models and S...
 
Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)
 
Practical Ruby Projects (Alex Sharp)
Practical Ruby Projects (Alex Sharp)Practical Ruby Projects (Alex Sharp)
Practical Ruby Projects (Alex Sharp)
 
Practical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSFPractical Ruby Projects with MongoDB - MongoSF
Practical Ruby Projects with MongoDB - MongoSF
 
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
 
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
 
Using Embulk at Treasure Data
Using Embulk at Treasure DataUsing Embulk at Treasure Data
Using Embulk at Treasure Data
 
Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...
Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...
Keep Your Code Low, Low, Low, Low, Low: Getting to Digitally Driven With Orac...
 
Serverless and IoT
Serverless and IoTServerless and IoT
Serverless and IoT
 
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
 
Select * From Internet
Select * From InternetSelect * From Internet
Select * From Internet
 
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasJavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
 
Event-Driven Systems With MongoDB
Event-Driven Systems With MongoDBEvent-Driven Systems With MongoDB
Event-Driven Systems With MongoDB
 

Dernier

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Dernier (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Cqrs, Event Sourcing

  • 1. CQRS, Event Sourcing Simplicity / Complexity AshicMahtabhttp://www.heartysoft.com@ashic
  • 2.
  • 3. UI DB Schema Validation DTO Transformation Controller DTO Transformation Service Repository “Domain” IoC Containers Projection Caching Lazy Loading Leaky “Pointless” Abstractions
  • 5. I Hold Data(Just the way you want it) I Did Stuff Gimme Some Data I Do Stuff Please Do Stuff Application
  • 6. ReadModel I Did Stuff Gimme Some Data Domain Please Do Stuff Application
  • 7. Event Bus I Hold Data(Just the way you want it) Domain I Did Stuff Gimme Some Data Read Model I Do Stuff Please Do Stuff Application Command Service
  • 8. Testing When_doing_tranche_payment_with… What about changes? Does “refactoring” require you to change tests? That’s not refactoring. Is the “BDD” output really human readable?
  • 9. Testing with Events Given:-An account with account holder named “John”, account id=1243, account type=Silver-Account 1243 is debited £200 When a request is made to withdraw £300 from account 1243 The request should fail stating “Account limit will be exceeded” as the reason. [pass]
  • 10. Adding new features to existing application
  • 12. Resources www.cqrsinfo.com Jonathan Oliver’s blog RinatAbdullin’s blog Ncqrs (github) Google groups for CQRS / DDDD and Ncqrs