SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
© 2019, Domain Driven Design Taiwan Community
Kim Kao ( )
Aug 01, 2019
Aggregate + Event Sourcing
© 2019, Domain Driven Design Taiwan Community
Event sourcing –
•
• :
•
© 2019, Domain Driven Design Taiwan Community
?
• ( )
• (Event Store)
:
•
•
• (pub/sub)
• RDBMS+ pub/sub
• NoSQL + pub/sub
• ...
© 2019, Domain Driven Design Taiwan Community
•
• : update ... Set vs append only logging...
• Reliability
• à .. Etc
•
© 2019, Domain Driven Design Taiwan Community
?
•
à Event Storming workshop
• à
• (2013)
•
• CQRS
• Command-Query-Responsibility-Segregation
© 2019, Domain Driven Design Taiwan Community
Application Service
1.
2.
( replay
Entity Id )
/
( )
© 2019, Domain Driven Design Taiwan Community
– EventStore, domain Service
© 2019, Domain Driven Design Taiwan Community
© 2019, Domain Driven Design Taiwan Community
-
© 2019, Domain Driven Design Taiwan Community
C#
© 2019, Domain Driven Design Taiwan Community
1. mutate
2. lock
3. Apply Event
4.
5.
6. ... looping
© 2019, Domain Driven Design Taiwan Community
•
• , class for state
• , class for behavior
© 2019, Domain Driven Design Taiwan Community
© 2019, Domain Driven Design Taiwan Community
clone
© 2019, Domain Driven Design Taiwan Community
•
• Application Service à Domain Service
• Get Aggregate root instance by Id
• Fetch corresponding event streams
• Replay to get current status ( )
•
• Aggregate
• ,
•
© 2019, Domain Driven Design Taiwan Community
...
, lambda ...
© 2019, Domain Driven Design Taiwan Community
Command Handler
© 2019, Domain Driven Design Taiwan Community
command
© 2019, Domain Driven Design Taiwan Community
command
© 2019, Domain Driven Design Taiwan Community
Command
© 2019, Domain Driven Design Taiwan Community
Queue
© 2019, Domain Driven Design Taiwan Community
© 2019, Domain Driven Design Taiwan Community
Concurrency control
• thread
:
throw EventStoreConcurrencyException
at step 4
© 2019, Domain Driven Design Taiwan Community
© 2019, Domain Driven Design Taiwan Community
• Thread2 while loop
event 1~5
• Thread2 6~7
•
•
© 2019, Domain Driven Design Taiwan Community
• à
•
•
• ( )
•
© 2019, Domain Driven Design Taiwan Community
• EventStore AWS S3 bucket.. Unlimited
capacity
•
•
© 2019, Domain Driven Design Taiwan Community
1.
2.
© 2019, Domain Driven Design Taiwan Community
EventStore
https://github.com/jimitndiaye/lokad-iddd-sample
https://github.com/abdullin/lokad-cqrs
© 2019, Domain Driven Design Taiwan Community
© 2019, Domain Driven Design Taiwan Community

Mais conteúdo relacionado

Mais procurados

IBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue BoxIBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue BoxDaniele Bolletta
 
Multi-cloud integration architecture
Multi-cloud integration architectureMulti-cloud integration architecture
Multi-cloud integration architectureKim Clark
 
IBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceIBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceRobert Nicholson
 
IBM Cloud OpenStack Services
IBM Cloud OpenStack ServicesIBM Cloud OpenStack Services
IBM Cloud OpenStack ServicesOpenStack_Online
 
SoftLayer Cloud Services
SoftLayer Cloud ServicesSoftLayer Cloud Services
SoftLayer Cloud ServicesAnna Landolfi
 
Tap into a Private Cloud as a Service to Accelerate Hybrid Success
Tap into a Private Cloud as a Service to Accelerate Hybrid SuccessTap into a Private Cloud as a Service to Accelerate Hybrid Success
Tap into a Private Cloud as a Service to Accelerate Hybrid SuccessDenny Muktar
 
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...Amazon Web Services
 
Smart Cloud Webinar 2014-02-13 Introduction to Softlayer IaaS MDB
Smart Cloud Webinar 2014-02-13 Introduction to Softlayer IaaS MDBSmart Cloud Webinar 2014-02-13 Introduction to Softlayer IaaS MDB
Smart Cloud Webinar 2014-02-13 Introduction to Softlayer IaaS MDBManuel Daza
 
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-ThinkEnterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-ThinkRightScale
 
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019confluent
 
Creating Microservices Application with IBM Cloud Private (ICP) - Container a...
Creating Microservices Application with IBM Cloud Private (ICP) - Container a...Creating Microservices Application with IBM Cloud Private (ICP) - Container a...
Creating Microservices Application with IBM Cloud Private (ICP) - Container a...PT Datacomm Diangraha
 
2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by dddKim Kao
 
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Michael Elder
 
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?Cisco DevNet
 
CNCF in Japan: Keynote, Open Source Summit Japan, Tokyo
CNCF in Japan: Keynote, Open Source Summit Japan, TokyoCNCF in Japan: Keynote, Open Source Summit Japan, Tokyo
CNCF in Japan: Keynote, Open Source Summit Japan, TokyoCheryl Hung
 
Cloud Migration and Portability Best Practices
Cloud Migration and Portability Best PracticesCloud Migration and Portability Best Practices
Cloud Migration and Portability Best PracticesRightScale
 

Mais procurados (18)

IBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue BoxIBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue Box
 
Multi-cloud integration architecture
Multi-cloud integration architectureMulti-cloud integration architecture
Multi-cloud integration architecture
 
IBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceIBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech Conference
 
Cloud Migration: A How-To Guide
Cloud Migration: A How-To GuideCloud Migration: A How-To Guide
Cloud Migration: A How-To Guide
 
IBM Cloud OpenStack Services
IBM Cloud OpenStack ServicesIBM Cloud OpenStack Services
IBM Cloud OpenStack Services
 
SoftLayer Cloud Services
SoftLayer Cloud ServicesSoftLayer Cloud Services
SoftLayer Cloud Services
 
Tap into a Private Cloud as a Service to Accelerate Hybrid Success
Tap into a Private Cloud as a Service to Accelerate Hybrid SuccessTap into a Private Cloud as a Service to Accelerate Hybrid Success
Tap into a Private Cloud as a Service to Accelerate Hybrid Success
 
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...
 
Smart Cloud Webinar 2014-02-13 Introduction to Softlayer IaaS MDB
Smart Cloud Webinar 2014-02-13 Introduction to Softlayer IaaS MDBSmart Cloud Webinar 2014-02-13 Introduction to Softlayer IaaS MDB
Smart Cloud Webinar 2014-02-13 Introduction to Softlayer IaaS MDB
 
Vidispine
VidispineVidispine
Vidispine
 
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-ThinkEnterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
 
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019
 
Creating Microservices Application with IBM Cloud Private (ICP) - Container a...
Creating Microservices Application with IBM Cloud Private (ICP) - Container a...Creating Microservices Application with IBM Cloud Private (ICP) - Container a...
Creating Microservices Application with IBM Cloud Private (ICP) - Container a...
 
2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd
 
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
 
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
DEVNET-1008 Private or Public or Hybrid ? Which Cloud Should I choose?
 
CNCF in Japan: Keynote, Open Source Summit Japan, Tokyo
CNCF in Japan: Keynote, Open Source Summit Japan, TokyoCNCF in Japan: Keynote, Open Source Summit Japan, Tokyo
CNCF in Japan: Keynote, Open Source Summit Japan, Tokyo
 
Cloud Migration and Portability Best Practices
Cloud Migration and Portability Best PracticesCloud Migration and Portability Best Practices
Cloud Migration and Portability Best Practices
 

Semelhante a 2019 08-01-i ddd-studygroup-appendix

2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservicesKim Kao
 
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd mattersDDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd mattersKim Kao
 
End-to-End CI/CD at scale with Infrastructure-as-Code on AWS
End-to-End CI/CD at scale with Infrastructure-as-Code on AWSEnd-to-End CI/CD at scale with Infrastructure-as-Code on AWS
End-to-End CI/CD at scale with Infrastructure-as-Code on AWSBhuvaneswari Subramani
 
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019Bhuvaneswari Subramani
 
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...Amazon Web Services
 
DevOps Spain 2019. Pedro Mendoza-AWS
DevOps Spain 2019. Pedro Mendoza-AWSDevOps Spain 2019. Pedro Mendoza-AWS
DevOps Spain 2019. Pedro Mendoza-AWSatSistemas
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker, Inc.
 
Docker Birthday #3 Slides - Overview
Docker Birthday #3 Slides - OverviewDocker Birthday #3 Slides - Overview
Docker Birthday #3 Slides - OverviewChris Ciborowski
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsCobus Bernard
 
Building Node.js applications for Microsoft Azure cloud
Building Node.js applications for Microsoft Azure cloudBuilding Node.js applications for Microsoft Azure cloud
Building Node.js applications for Microsoft Azure cloud Faculty of Computer Science
 
The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)Simon Haslam
 
2018 07 aws windsor user group - fall project planning v1
2018 07 aws windsor user group - fall project planning v12018 07 aws windsor user group - fall project planning v1
2018 07 aws windsor user group - fall project planning v1Paul Camilleri, PMP
 
20191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 220191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 2makker_nl
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessChris Schalk
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsAmazon Web Services
 
Http Services in Rust on Containers
Http Services in Rust on ContainersHttp Services in Rust on Containers
Http Services in Rust on ContainersAnton Whalley
 
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...Vincent Biret
 

Semelhante a 2019 08-01-i ddd-studygroup-appendix (20)

2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
 
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd mattersDDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
 
End-to-End CI/CD at scale with Infrastructure-as-Code on AWS
End-to-End CI/CD at scale with Infrastructure-as-Code on AWSEnd-to-End CI/CD at scale with Infrastructure-as-Code on AWS
End-to-End CI/CD at scale with Infrastructure-as-Code on AWS
 
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
 
Bringing swift to cloud
Bringing swift to cloudBringing swift to cloud
Bringing swift to cloud
 
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
 
DevOps Spain 2019. Pedro Mendoza-AWS
DevOps Spain 2019. Pedro Mendoza-AWSDevOps Spain 2019. Pedro Mendoza-AWS
DevOps Spain 2019. Pedro Mendoza-AWS
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker Slides
 
Docker Birthday #3 Slides - Overview
Docker Birthday #3 Slides - OverviewDocker Birthday #3 Slides - Overview
Docker Birthday #3 Slides - Overview
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applications
 
Building Node.js applications for Microsoft Azure cloud
Building Node.js applications for Microsoft Azure cloudBuilding Node.js applications for Microsoft Azure cloud
Building Node.js applications for Microsoft Azure cloud
 
The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)
 
Evolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft Azure
Evolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft AzureEvolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft Azure
Evolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft Azure
 
2018 07 aws windsor user group - fall project planning v1
2018 07 aws windsor user group - fall project planning v12018 07 aws windsor user group - fall project planning v1
2018 07 aws windsor user group - fall project planning v1
 
Community day _aws_ci_cd_v0.2
Community day _aws_ci_cd_v0.2Community day _aws_ci_cd_v0.2
Community day _aws_ci_cd_v0.2
 
20191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 220191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 2
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for Business
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
 
Http Services in Rust on Containers
Http Services in Rust on ContainersHttp Services in Rust on Containers
Http Services in Rust on Containers
 
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
 

Mais de Kim Kao

Enlarge influence by Participating in communities
Enlarge influence by Participating in communitiesEnlarge influence by Participating in communities
Enlarge influence by Participating in communitiesKim Kao
 
跟著Actor Model來一場與DDD的豔遇
跟著Actor Model來一場與DDD的豔遇跟著Actor Model來一場與DDD的豔遇
跟著Actor Model來一場與DDD的豔遇Kim Kao
 
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservicesKim Kao
 
Ddd by-clark chou
Ddd by-clark chouDdd by-clark chou
Ddd by-clark chouKim Kao
 
Ddd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureDdd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureKim Kao
 
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverlessKim Kao
 
Legacy java ee meet lambda
Legacy java ee  meet lambdaLegacy java ee  meet lambda
Legacy java ee meet lambdaKim Kao
 

Mais de Kim Kao (7)

Enlarge influence by Participating in communities
Enlarge influence by Participating in communitiesEnlarge influence by Participating in communities
Enlarge influence by Participating in communities
 
跟著Actor Model來一場與DDD的豔遇
跟著Actor Model來一場與DDD的豔遇跟著Actor Model來一場與DDD的豔遇
跟著Actor Model來一場與DDD的豔遇
 
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
 
Ddd by-clark chou
Ddd by-clark chouDdd by-clark chou
Ddd by-clark chou
 
Ddd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureDdd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architecture
 
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless
 
Legacy java ee meet lambda
Legacy java ee  meet lambdaLegacy java ee  meet lambda
Legacy java ee meet lambda
 

Último

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile EnvironmentVictorSzoltysek
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 

Último (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 

2019 08-01-i ddd-studygroup-appendix

  • 1. © 2019, Domain Driven Design Taiwan Community Kim Kao ( ) Aug 01, 2019 Aggregate + Event Sourcing
  • 2. © 2019, Domain Driven Design Taiwan Community Event sourcing – • • : •
  • 3. © 2019, Domain Driven Design Taiwan Community ? • ( ) • (Event Store) : • • • (pub/sub) • RDBMS+ pub/sub • NoSQL + pub/sub • ...
  • 4. © 2019, Domain Driven Design Taiwan Community • • : update ... Set vs append only logging... • Reliability • à .. Etc •
  • 5. © 2019, Domain Driven Design Taiwan Community ? • à Event Storming workshop • à • (2013) • • CQRS • Command-Query-Responsibility-Segregation
  • 6. © 2019, Domain Driven Design Taiwan Community Application Service 1. 2. ( replay Entity Id ) / ( )
  • 7. © 2019, Domain Driven Design Taiwan Community – EventStore, domain Service
  • 8. © 2019, Domain Driven Design Taiwan Community
  • 9. © 2019, Domain Driven Design Taiwan Community -
  • 10. © 2019, Domain Driven Design Taiwan Community C#
  • 11. © 2019, Domain Driven Design Taiwan Community 1. mutate 2. lock 3. Apply Event 4. 5. 6. ... looping
  • 12. © 2019, Domain Driven Design Taiwan Community • • , class for state • , class for behavior
  • 13. © 2019, Domain Driven Design Taiwan Community
  • 14. © 2019, Domain Driven Design Taiwan Community clone
  • 15. © 2019, Domain Driven Design Taiwan Community • • Application Service à Domain Service • Get Aggregate root instance by Id • Fetch corresponding event streams • Replay to get current status ( ) • • Aggregate • , •
  • 16. © 2019, Domain Driven Design Taiwan Community ... , lambda ...
  • 17. © 2019, Domain Driven Design Taiwan Community Command Handler
  • 18. © 2019, Domain Driven Design Taiwan Community command
  • 19. © 2019, Domain Driven Design Taiwan Community command
  • 20. © 2019, Domain Driven Design Taiwan Community Command
  • 21. © 2019, Domain Driven Design Taiwan Community Queue
  • 22. © 2019, Domain Driven Design Taiwan Community
  • 23. © 2019, Domain Driven Design Taiwan Community Concurrency control • thread : throw EventStoreConcurrencyException at step 4
  • 24. © 2019, Domain Driven Design Taiwan Community
  • 25. © 2019, Domain Driven Design Taiwan Community • Thread2 while loop event 1~5 • Thread2 6~7 • •
  • 26. © 2019, Domain Driven Design Taiwan Community • à • • • ( ) •
  • 27. © 2019, Domain Driven Design Taiwan Community • EventStore AWS S3 bucket.. Unlimited capacity • •
  • 28. © 2019, Domain Driven Design Taiwan Community 1. 2.
  • 29. © 2019, Domain Driven Design Taiwan Community EventStore https://github.com/jimitndiaye/lokad-iddd-sample https://github.com/abdullin/lokad-cqrs
  • 30. © 2019, Domain Driven Design Taiwan Community
  • 31. © 2019, Domain Driven Design Taiwan Community