SlideShare a Scribd company logo
1 of 64
Download to read offline
© 2019, Domain Driven Design Taiwan Community
Kim Kao ( )
Jan 26, 2019
Why DDD matters
Crunch problems, design solutions
© 2019, Domain Driven Design Taiwan Community
© 2019, Domain Driven Design Taiwan Community
uncertainty.equals(dangerous) == true
© 2019, Domain Driven Design Taiwan Community
A typical day for problem solving...
Manager -
“We are going to launch new product.
We are challenged by competitors, several niche economics there."
“I heard of microservices(anything else), sounds good to quick deliver.
Make sure you are aware on this, and release on time!!!”
Developer - “...........”
© 2019, Domain Driven Design Taiwan Community
Problem Solving
&
& &
© 2019, Domain Driven Design Taiwan Community
Application is …
Requirements Software Modeling Collaboration
© 2019, Domain Driven Design Taiwan Community
Eric Evans
Ubiquitous Language
Bounded Context
Collaboration
© 2019, Domain Driven Design Taiwan Community
Sheet music works
© 2019, Domain Driven Design Taiwan Community
When talk about problem
© 2019, Domain Driven Design Taiwan Community
IoT
SSO
Server
less
Network
Container
Firecracker
AI/ML
DW
Front
End DB
CI/CD
© 2019, Domain Driven Design Taiwan Community
© 2019, Domain Driven Design Taiwan Community
Knowledge from stakeholders
Use Case Modeling
© 2019, Domain Driven Design Taiwan Community
Through Classic to Agile
ICONIX Processing
© 2019, Domain Driven Design Taiwan Community
Object Modeling …
ER Modeling …
xxx Modeling …
A lack of Collaboration with non-tech stakeholders
Not “Ubiquitous Language”
© 2019, Domain Driven Design Taiwan Community
Way to collaborate
• Point out the events
• Who send the command
• Find the Noun(s)
• Have all team voices
Commands
Events
Aggregate
© 2019, Domain Driven Design Taiwan Community
Domain Driven Design
© 2019, Domain Driven Design Taiwan Community
© 2019, Domain Driven Design Taiwan Community
Intent matters
© 2019, Domain Driven Design Taiwan Community
Domain Driven Design (DDD)
• What is DDD?
• Not only a Technology / Methodology
• Set of principles and patterns for focusing the design effort where
it matters most
• It’s all about
• Understanding the domain where the software will be applied
• Create highly expressive model of that domain
• Distil Ubiquitous language
© 2019, Domain Driven Design Taiwan Community
Domain (Strategy) Modeling – Basic Terms
• Domain
• Subject area where the software will be applied
• Example : VOD Domain, EC Domain, Banking Domain
• Subdomain
• Logically separated part of the Domain
• Example : Ingestion, Streaming, Geo Location
• Domain Model
• Software model for solution of a domain problem
• Bounded Context
• Explicit boundary where Domain Model lives
© 2019, Domain Driven Design Taiwan Community
Tell about story
© 2019, Domain Driven Design Taiwan Community
Domain is about capability
Grab key events to
Abstraction to give
© 2019, Domain Driven Design Taiwan Community
Dive into relationships and why
Strategic DDD
© 2019, Domain Driven Design Taiwan Community
Pattern in Practice
Tactical DDD
© 2019, Domain Driven Design Taiwan Community
Approach
• Collect the “Aggregates” which stand for similar concept in
the “Bounded Context”.
• Prioritize the “Domains”, which one is Core Domain, rest for
Sub Domain, even Utility Domain.
• Get Consensus, not Compromise
• Focus on Core Domain
© 2019, Domain Driven Design Taiwan Community
Tell story by coding
© 2019, Domain Driven Design Taiwan Community
Microservices?
© 2019, Domain Driven Design Taiwan Community
100
LOC
© 2019, Domain Driven Design Taiwan Community
200
LOC
© 2019, Domain Driven Design Taiwan Community
400?
1000?
© 2019, Domain Driven Design Taiwan Community
Trap in Microservices
© 2019, Domain Driven Design Taiwan Community
Crunch Bounded Context
• 1st focus on high Cohesion
• Always Low Coupling later
© 2019, Domain Driven Design Taiwan Community
“All Things Distributed”
“Design to Fail”
“Redundancy is hard”
“Server provisioning hell .....................................”
© 2019, Domain Driven Design Taiwan Community
It’s about capability
• Are you ready to deal with M:N transaction compensation ?
• Are you ready to embrace the rapidly change by contract ?
© 2019, Domain Driven Design Taiwan Community
When you should dive in Microservices
Team
Partners
Business
Operation
Coding
Value
© 2019, Domain Driven Design Taiwan Community
Migration Strategy
Assess and
prioritize, one app
at a time
Re-host (lift-and-shift)
data center or Cloud
Re-platform (lift-tinker-shift)
VMs à containers
Re-factor
monolith à microservices
Re-invent (cloud-native)
new serverless microservices
Determine
Core/Sub/utility
Domain
© 2019, Domain Driven Design Taiwan Community
How BBoM to Microservices
• Only one domain a time
• Test Driven
• Value Driven
• Change Driven
• Adapter in BBoM
• Port in Microservices
© 2019, Domain Driven Design Taiwan Community
Event handler
© 2019, Domain Driven Design Taiwan Community
Domain Events means …
Un Cer tain ty
the state of being uncertain.
© 2019, Domain Driven Design Taiwan Community
De duplicator
Event 3 Event 1 Event 2 Event 1 Event 3 Event 2 Event 1
…
Want In-Order, actually Uncertainty
© 2019, Domain Driven Design Taiwan Community
Uncomfortable
It’s okay to feel this way.
@VaughnVernon
© 2019, Domain Driven Design Taiwan Community
Dependencies
© 2019, Domain Driven Design Taiwan Community
Focus on Contract and Protocol
• Service owner is consumer
• Expose SDK means projection technical decisions to consumer
• “Operation” complexity spread to consumer
• Consumer should be able to use any language/technology
and change over time!
• AWS
• API Gateway, Lambda Execution, any composable API call
© 2019, Domain Driven Design Taiwan Community
Some exceptions
• Centralized Logging
• Monitoring
• Distributed tracing
© 2019, Domain Driven Design Taiwan Community
Principle
© 2019, Domain Driven Design Taiwan Community
Adopt Microservices?
© 2019, Domain Driven Design Taiwan Community
Business Wants
https://vaughnvernon.co/tag/event-storming/
© 2019, Domain Driven Design Taiwan Community
But You Want
https://vaughnvernon.co/tag/event-storming/
© 2019, Domain Driven Design Taiwan Community
Challenge on migration to Microserivces
• Legacy looks like Big ball of mud(BBOM)
• Heavy dependency with external system
• No idea on split BBOM
• No idea to find out system boundary
• Which service(s) worth to do
• Human resources allocation
• Team, out sourcing, ISVs solution
© 2019, Domain Driven Design Taiwan Community
Business operation without whole picture
The Blind Men and the Elephant
Is It correct to all in microservices or serverless ?
© 2019, Domain Driven Design Taiwan Community
Precondition to do microservices
Rapid Provisioning
Basic monitoring
Rapid application deployment
Martin
Fowler
Realize the business flow, way to decompos
© 2019, Domain Driven Design Taiwan Community
Better way to decompose Monolith
Domain
Expert
Matters
© 2019, Domain Driven Design Taiwan Community
Learn and respect Domain experts
© 2019, Domain Driven Design Taiwan Community
How DDD can help you
• Business strategy on resource allocation
• Best resources should be put in most key/core domain
• Buy or out-sourcing common domain and sub domain
• Service re-architecture
• Form up the system context boundary
• Knowing the upstream-downstream relationship between domains
• Meaningful to do microservice (separate computing/persist, and
API communication )
• Service Migration
• Good to re-architecture
© 2019, Domain Driven Design Taiwan Community
Migration Business Case
Know Why/What/How
• Options to Optimize
• Learn and speak same language with
Domain expert
• Capture key business events, if it matters
• Adopt appropriate AWS services to
implement Solution
© 2019, Domain Driven Design Taiwan Community
Sharpen your saw
© 2019, Domain Driven Design Taiwan Community
DDD stuff
© 2019, Domain Driven Design Taiwan Community
Event Storming
© 2019, Domain Driven Design Taiwan Community
Specification by Example
© 2019, Domain Driven Design Taiwan Community
Programming Skills level up
• Test Driven Design
• Behavior Driven Design
• Refactoring
• CI/CD
© 2019, Domain Driven Design Taiwan Community
Practice DDD
Telegram : YikaiKao
WeChat : YikaiKao
Twitter : @DddTaiwan, @YikaiKao
GitHub Repos
© 2019, Domain Driven Design Taiwan Community
Thank You!
© 2019, Domain Driven Design Taiwan Community
Let’s explore
Event Storming

More Related Content

What's hot

如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)Gelis Wu
 
2019-02-20-ddd taiwan-community-iddd-studygroup-1st
2019-02-20-ddd taiwan-community-iddd-studygroup-1st2019-02-20-ddd taiwan-community-iddd-studygroup-1st
2019-02-20-ddd taiwan-community-iddd-studygroup-1stKim Kao
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaAraf Karsh Hamid
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your OrganizationDalibor Blazevic
 
Protecting Agile Transformation through Secure DevOps (DevSecOps)
Protecting Agile Transformation through Secure DevOps (DevSecOps)Protecting Agile Transformation through Secure DevOps (DevSecOps)
Protecting Agile Transformation through Secure DevOps (DevSecOps)Eryk Budi Pratama
 
DevSecOps - The big picture
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big pictureDevSecOpsSg
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven DesignDavid Berliner
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker, Inc.
 
DevOps Challenges and Best Practices
DevOps Challenges and Best PracticesDevOps Challenges and Best Practices
DevOps Challenges and Best PracticesBrian Chorba
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfAhmed Misbah
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?Soumya De
 
DevOps Approach (Point of View by Ravi Tadwalkar)
DevOps Approach (Point of View by Ravi Tadwalkar)DevOps Approach (Point of View by Ravi Tadwalkar)
DevOps Approach (Point of View by Ravi Tadwalkar)Ravi Tadwalkar
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017Docker, Inc.
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作teddysoft
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshiftMamathaBusi
 
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항rockplace
 

What's hot (20)

如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
2019-02-20-ddd taiwan-community-iddd-studygroup-1st
2019-02-20-ddd taiwan-community-iddd-studygroup-1st2019-02-20-ddd taiwan-community-iddd-studygroup-1st
2019-02-20-ddd taiwan-community-iddd-studygroup-1st
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your Organization
 
Protecting Agile Transformation through Secure DevOps (DevSecOps)
Protecting Agile Transformation through Secure DevOps (DevSecOps)Protecting Agile Transformation through Secure DevOps (DevSecOps)
Protecting Agile Transformation through Secure DevOps (DevSecOps)
 
DevSecOps - The big picture
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big picture
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven Design
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
DevOps Challenges and Best Practices
DevOps Challenges and Best PracticesDevOps Challenges and Best Practices
DevOps Challenges and Best Practices
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdf
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?
 
DevOps Approach (Point of View by Ravi Tadwalkar)
DevOps Approach (Point of View by Ravi Tadwalkar)DevOps Approach (Point of View by Ravi Tadwalkar)
DevOps Approach (Point of View by Ravi Tadwalkar)
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作
 
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshift
 
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
 

Similar to DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters

2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservicesKim Kao
 
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservicessolidkim
 
2019 03-23-2nd-meetup-essential capabilities behind microservices
2019 03-23-2nd-meetup-essential capabilities behind microservices2019 03-23-2nd-meetup-essential capabilities behind microservices
2019 03-23-2nd-meetup-essential capabilities behind microservicesKim Kao
 
DDD for small organizations redelivery
DDD for small organizations redeliveryDDD for small organizations redelivery
DDD for small organizations redeliveryssuser281ba71
 
MSA, TBD, DDD, TDD, BDD, WTF?
MSA, TBD, DDD, TDD, BDD, WTF?MSA, TBD, DDD, TDD, BDD, WTF?
MSA, TBD, DDD, TDD, BDD, WTF?Michael Lambert
 
The As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsThe As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsDenim Group
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud ComputingUOS
 
2019 08-01-i ddd-studygroup-appendix
2019 08-01-i ddd-studygroup-appendix2019 08-01-i ddd-studygroup-appendix
2019 08-01-i ddd-studygroup-appendixKim Kao
 
Migrate-Critical-Workload-to-AWS-From-Domain-Driven-Design-perspective
Migrate-Critical-Workload-to-AWS-From-Domain-Driven-Design-perspectiveMigrate-Critical-Workload-to-AWS-From-Domain-Driven-Design-perspective
Migrate-Critical-Workload-to-AWS-From-Domain-Driven-Design-perspectiveAmazon Web Services
 
Keynote_Disney_UnleashthePossibilitiesAvoidthePitfallswithCloud
Keynote_Disney_UnleashthePossibilitiesAvoidthePitfallswithCloudKeynote_Disney_UnleashthePossibilitiesAvoidthePitfallswithCloud
Keynote_Disney_UnleashthePossibilitiesAvoidthePitfallswithCloudAmazon Web Services
 
Modernization: Moving workloads to cloud
Modernization: Moving workloads to cloud Modernization: Moving workloads to cloud
Modernization: Moving workloads to cloud Shikha Srivastava
 
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network StrategiesCisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network StrategiesMen and Mice
 
IBM Connect 2016 - Don't give up on Domino! Introducing Darwino: A New Lifeli...
IBM Connect 2016 - Don't give up on Domino!Introducing Darwino: A New Lifeli...IBM Connect 2016 - Don't give up on Domino!Introducing Darwino: A New Lifeli...
IBM Connect 2016 - Don't give up on Domino! Introducing Darwino: A New Lifeli...Philippe Riand
 
Using Dbvisit STANDBY as DR solution for Oracle ODA machines
Using Dbvisit STANDBY as DR solution for Oracle ODA machinesUsing Dbvisit STANDBY as DR solution for Oracle ODA machines
Using Dbvisit STANDBY as DR solution for Oracle ODA machinesMarketingArrowECS_CZ
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsMark Windholtz
 
Public cloud uses and limitations
Public cloud uses and limitationsPublic cloud uses and limitations
Public cloud uses and limitationsIDERA Software
 
Succeeding With Microservices | Harness Webinar
Succeeding With Microservices | Harness WebinarSucceeding With Microservices | Harness Webinar
Succeeding With Microservices | Harness WebinarTiffany Jachja
 
Planning Cloud Migrations: It's all about the destination
Planning Cloud Migrations: It's all about the destinationPlanning Cloud Migrations: It's all about the destination
Planning Cloud Migrations: It's all about the destinationArvind Viswanathan
 
Private Cloud Overview
Private Cloud OverviewPrivate Cloud Overview
Private Cloud OverviewEdKerstein
 
2012.02.09 - Leveraging the IBM Cloud Partner Ecosystem - Cloud Top Gun - Loi...
2012.02.09 - Leveraging the IBM Cloud Partner Ecosystem - Cloud Top Gun - Loi...2012.02.09 - Leveraging the IBM Cloud Partner Ecosystem - Cloud Top Gun - Loi...
2012.02.09 - Leveraging the IBM Cloud Partner Ecosystem - Cloud Top Gun - Loi...Club Cloud des Partenaires
 

Similar to DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters (20)

2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
 
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
 
2019 03-23-2nd-meetup-essential capabilities behind microservices
2019 03-23-2nd-meetup-essential capabilities behind microservices2019 03-23-2nd-meetup-essential capabilities behind microservices
2019 03-23-2nd-meetup-essential capabilities behind microservices
 
DDD for small organizations redelivery
DDD for small organizations redeliveryDDD for small organizations redelivery
DDD for small organizations redelivery
 
MSA, TBD, DDD, TDD, BDD, WTF?
MSA, TBD, DDD, TDD, BDD, WTF?MSA, TBD, DDD, TDD, BDD, WTF?
MSA, TBD, DDD, TDD, BDD, WTF?
 
The As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native ApplicationsThe As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native Applications
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
2019 08-01-i ddd-studygroup-appendix
2019 08-01-i ddd-studygroup-appendix2019 08-01-i ddd-studygroup-appendix
2019 08-01-i ddd-studygroup-appendix
 
Migrate-Critical-Workload-to-AWS-From-Domain-Driven-Design-perspective
Migrate-Critical-Workload-to-AWS-From-Domain-Driven-Design-perspectiveMigrate-Critical-Workload-to-AWS-From-Domain-Driven-Design-perspective
Migrate-Critical-Workload-to-AWS-From-Domain-Driven-Design-perspective
 
Keynote_Disney_UnleashthePossibilitiesAvoidthePitfallswithCloud
Keynote_Disney_UnleashthePossibilitiesAvoidthePitfallswithCloudKeynote_Disney_UnleashthePossibilitiesAvoidthePitfallswithCloud
Keynote_Disney_UnleashthePossibilitiesAvoidthePitfallswithCloud
 
Modernization: Moving workloads to cloud
Modernization: Moving workloads to cloud Modernization: Moving workloads to cloud
Modernization: Moving workloads to cloud
 
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network StrategiesCisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
 
IBM Connect 2016 - Don't give up on Domino! Introducing Darwino: A New Lifeli...
IBM Connect 2016 - Don't give up on Domino!Introducing Darwino: A New Lifeli...IBM Connect 2016 - Don't give up on Domino!Introducing Darwino: A New Lifeli...
IBM Connect 2016 - Don't give up on Domino! Introducing Darwino: A New Lifeli...
 
Using Dbvisit STANDBY as DR solution for Oracle ODA machines
Using Dbvisit STANDBY as DR solution for Oracle ODA machinesUsing Dbvisit STANDBY as DR solution for Oracle ODA machines
Using Dbvisit STANDBY as DR solution for Oracle ODA machines
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
Public cloud uses and limitations
Public cloud uses and limitationsPublic cloud uses and limitations
Public cloud uses and limitations
 
Succeeding With Microservices | Harness Webinar
Succeeding With Microservices | Harness WebinarSucceeding With Microservices | Harness Webinar
Succeeding With Microservices | Harness Webinar
 
Planning Cloud Migrations: It's all about the destination
Planning Cloud Migrations: It's all about the destinationPlanning Cloud Migrations: It's all about the destination
Planning Cloud Migrations: It's all about the destination
 
Private Cloud Overview
Private Cloud OverviewPrivate Cloud Overview
Private Cloud Overview
 
2012.02.09 - Leveraging the IBM Cloud Partner Ecosystem - Cloud Top Gun - Loi...
2012.02.09 - Leveraging the IBM Cloud Partner Ecosystem - Cloud Top Gun - Loi...2012.02.09 - Leveraging the IBM Cloud Partner Ecosystem - Cloud Top Gun - Loi...
2012.02.09 - Leveraging the IBM Cloud Partner Ecosystem - Cloud Top Gun - Loi...
 

More from 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
 
My past-3 yeas-developer-journey-at-linkedin-by-iantsai
My past-3 yeas-developer-journey-at-linkedin-by-iantsaiMy past-3 yeas-developer-journey-at-linkedin-by-iantsai
My past-3 yeas-developer-journey-at-linkedin-by-iantsaiKim 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
 
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
 
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
 

More from Kim Kao (9)

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
 
My past-3 yeas-developer-journey-at-linkedin-by-iantsai
My past-3 yeas-developer-journey-at-linkedin-by-iantsaiMy past-3 yeas-developer-journey-at-linkedin-by-iantsai
My past-3 yeas-developer-journey-at-linkedin-by-iantsai
 
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
 
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
 
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
 

Recently uploaded

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Recently uploaded (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters

  • 1. © 2019, Domain Driven Design Taiwan Community Kim Kao ( ) Jan 26, 2019 Why DDD matters Crunch problems, design solutions
  • 2. © 2019, Domain Driven Design Taiwan Community
  • 3. © 2019, Domain Driven Design Taiwan Community uncertainty.equals(dangerous) == true
  • 4. © 2019, Domain Driven Design Taiwan Community A typical day for problem solving... Manager - “We are going to launch new product. We are challenged by competitors, several niche economics there." “I heard of microservices(anything else), sounds good to quick deliver. Make sure you are aware on this, and release on time!!!” Developer - “...........”
  • 5. © 2019, Domain Driven Design Taiwan Community Problem Solving
  • 7. © 2019, Domain Driven Design Taiwan Community Application is … Requirements Software Modeling Collaboration
  • 8. © 2019, Domain Driven Design Taiwan Community Eric Evans Ubiquitous Language Bounded Context Collaboration
  • 9. © 2019, Domain Driven Design Taiwan Community Sheet music works
  • 10. © 2019, Domain Driven Design Taiwan Community When talk about problem
  • 11. © 2019, Domain Driven Design Taiwan Community IoT SSO Server less Network Container Firecracker AI/ML DW Front End DB CI/CD
  • 12. © 2019, Domain Driven Design Taiwan Community
  • 13. © 2019, Domain Driven Design Taiwan Community Knowledge from stakeholders Use Case Modeling
  • 14. © 2019, Domain Driven Design Taiwan Community Through Classic to Agile ICONIX Processing
  • 15. © 2019, Domain Driven Design Taiwan Community Object Modeling … ER Modeling … xxx Modeling … A lack of Collaboration with non-tech stakeholders Not “Ubiquitous Language”
  • 16. © 2019, Domain Driven Design Taiwan Community Way to collaborate • Point out the events • Who send the command • Find the Noun(s) • Have all team voices Commands Events Aggregate
  • 17. © 2019, Domain Driven Design Taiwan Community Domain Driven Design
  • 18. © 2019, Domain Driven Design Taiwan Community
  • 19. © 2019, Domain Driven Design Taiwan Community Intent matters
  • 20. © 2019, Domain Driven Design Taiwan Community Domain Driven Design (DDD) • What is DDD? • Not only a Technology / Methodology • Set of principles and patterns for focusing the design effort where it matters most • It’s all about • Understanding the domain where the software will be applied • Create highly expressive model of that domain • Distil Ubiquitous language
  • 21. © 2019, Domain Driven Design Taiwan Community Domain (Strategy) Modeling – Basic Terms • Domain • Subject area where the software will be applied • Example : VOD Domain, EC Domain, Banking Domain • Subdomain • Logically separated part of the Domain • Example : Ingestion, Streaming, Geo Location • Domain Model • Software model for solution of a domain problem • Bounded Context • Explicit boundary where Domain Model lives
  • 22. © 2019, Domain Driven Design Taiwan Community Tell about story
  • 23. © 2019, Domain Driven Design Taiwan Community Domain is about capability Grab key events to Abstraction to give
  • 24. © 2019, Domain Driven Design Taiwan Community Dive into relationships and why Strategic DDD
  • 25. © 2019, Domain Driven Design Taiwan Community Pattern in Practice Tactical DDD
  • 26. © 2019, Domain Driven Design Taiwan Community Approach • Collect the “Aggregates” which stand for similar concept in the “Bounded Context”. • Prioritize the “Domains”, which one is Core Domain, rest for Sub Domain, even Utility Domain. • Get Consensus, not Compromise • Focus on Core Domain
  • 27. © 2019, Domain Driven Design Taiwan Community Tell story by coding
  • 28. © 2019, Domain Driven Design Taiwan Community Microservices?
  • 29. © 2019, Domain Driven Design Taiwan Community 100 LOC
  • 30. © 2019, Domain Driven Design Taiwan Community 200 LOC
  • 31. © 2019, Domain Driven Design Taiwan Community 400? 1000?
  • 32. © 2019, Domain Driven Design Taiwan Community Trap in Microservices
  • 33. © 2019, Domain Driven Design Taiwan Community Crunch Bounded Context • 1st focus on high Cohesion • Always Low Coupling later
  • 34. © 2019, Domain Driven Design Taiwan Community “All Things Distributed” “Design to Fail” “Redundancy is hard” “Server provisioning hell .....................................”
  • 35. © 2019, Domain Driven Design Taiwan Community It’s about capability • Are you ready to deal with M:N transaction compensation ? • Are you ready to embrace the rapidly change by contract ?
  • 36. © 2019, Domain Driven Design Taiwan Community When you should dive in Microservices Team Partners Business Operation Coding Value
  • 37. © 2019, Domain Driven Design Taiwan Community Migration Strategy Assess and prioritize, one app at a time Re-host (lift-and-shift) data center or Cloud Re-platform (lift-tinker-shift) VMs à containers Re-factor monolith à microservices Re-invent (cloud-native) new serverless microservices Determine Core/Sub/utility Domain
  • 38. © 2019, Domain Driven Design Taiwan Community How BBoM to Microservices • Only one domain a time • Test Driven • Value Driven • Change Driven • Adapter in BBoM • Port in Microservices
  • 39. © 2019, Domain Driven Design Taiwan Community Event handler
  • 40. © 2019, Domain Driven Design Taiwan Community Domain Events means … Un Cer tain ty the state of being uncertain.
  • 41. © 2019, Domain Driven Design Taiwan Community De duplicator Event 3 Event 1 Event 2 Event 1 Event 3 Event 2 Event 1 … Want In-Order, actually Uncertainty
  • 42. © 2019, Domain Driven Design Taiwan Community Uncomfortable It’s okay to feel this way. @VaughnVernon
  • 43. © 2019, Domain Driven Design Taiwan Community Dependencies
  • 44. © 2019, Domain Driven Design Taiwan Community Focus on Contract and Protocol • Service owner is consumer • Expose SDK means projection technical decisions to consumer • “Operation” complexity spread to consumer • Consumer should be able to use any language/technology and change over time! • AWS • API Gateway, Lambda Execution, any composable API call
  • 45. © 2019, Domain Driven Design Taiwan Community Some exceptions • Centralized Logging • Monitoring • Distributed tracing
  • 46. © 2019, Domain Driven Design Taiwan Community Principle
  • 47. © 2019, Domain Driven Design Taiwan Community Adopt Microservices?
  • 48. © 2019, Domain Driven Design Taiwan Community Business Wants https://vaughnvernon.co/tag/event-storming/
  • 49. © 2019, Domain Driven Design Taiwan Community But You Want https://vaughnvernon.co/tag/event-storming/
  • 50. © 2019, Domain Driven Design Taiwan Community Challenge on migration to Microserivces • Legacy looks like Big ball of mud(BBOM) • Heavy dependency with external system • No idea on split BBOM • No idea to find out system boundary • Which service(s) worth to do • Human resources allocation • Team, out sourcing, ISVs solution
  • 51. © 2019, Domain Driven Design Taiwan Community Business operation without whole picture The Blind Men and the Elephant Is It correct to all in microservices or serverless ?
  • 52. © 2019, Domain Driven Design Taiwan Community Precondition to do microservices Rapid Provisioning Basic monitoring Rapid application deployment Martin Fowler Realize the business flow, way to decompos
  • 53. © 2019, Domain Driven Design Taiwan Community Better way to decompose Monolith Domain Expert Matters
  • 54. © 2019, Domain Driven Design Taiwan Community Learn and respect Domain experts
  • 55. © 2019, Domain Driven Design Taiwan Community How DDD can help you • Business strategy on resource allocation • Best resources should be put in most key/core domain • Buy or out-sourcing common domain and sub domain • Service re-architecture • Form up the system context boundary • Knowing the upstream-downstream relationship between domains • Meaningful to do microservice (separate computing/persist, and API communication ) • Service Migration • Good to re-architecture
  • 56. © 2019, Domain Driven Design Taiwan Community Migration Business Case Know Why/What/How • Options to Optimize • Learn and speak same language with Domain expert • Capture key business events, if it matters • Adopt appropriate AWS services to implement Solution
  • 57. © 2019, Domain Driven Design Taiwan Community Sharpen your saw
  • 58. © 2019, Domain Driven Design Taiwan Community DDD stuff
  • 59. © 2019, Domain Driven Design Taiwan Community Event Storming
  • 60. © 2019, Domain Driven Design Taiwan Community Specification by Example
  • 61. © 2019, Domain Driven Design Taiwan Community Programming Skills level up • Test Driven Design • Behavior Driven Design • Refactoring • CI/CD
  • 62. © 2019, Domain Driven Design Taiwan Community Practice DDD Telegram : YikaiKao WeChat : YikaiKao Twitter : @DddTaiwan, @YikaiKao GitHub Repos
  • 63. © 2019, Domain Driven Design Taiwan Community Thank You!
  • 64. © 2019, Domain Driven Design Taiwan Community Let’s explore Event Storming