SlideShare una empresa de Scribd logo
1 de 57
Descargar para leer sin conexión
Chapter 3 - Context Maps
Speaker: Eason Kuo
Date: 2019/04/10 @ Taiwan iDDD Study Group
Why Context Maps Are So Essential
Define business domain to Problem
Space, distinguish each business
subdomain
By ubiquitous language, find the
boundaries of each subdomain and
distinguish the Bounded Context
Recap Bounded Context
© 2019, Eason Kuo, Taiwan iDDD Study Group
Define business domain to Problem
Space, distinguish each business
subdomain
By ubiquitous language, find the
boundaries of each subdomain and
distinguish the Bounded Context
Recap Bounded Context
© 2019, Eason Kuo, Taiwan iDDD Study Group
Okay Everything seems great, right?
But !
© 2019, Eason Kuo, Taiwan iDDD Study Group
Found Subdomain & Bounded Contexts
Is Enough?
© 2019, Eason Kuo, Taiwan iDDD Study Group
No.
There are some issues you should consider…
© 2019, Eason Kuo, Taiwan iDDD Study Group
Issue 1 : More Complex Scenario, More Unclearly Bounded Context
Issue 2: Organization Complexity
Sample from Internet, Not I Say..
© 2019, Eason Kuo, Taiwan iDDD Study Group
Issue 3: Large team size or multiple development teams
Issue 4: Distributed or offshore team
© 2019, Eason Kuo, Taiwan iDDD Study Group
Issue 5: External, Separate Systems
© 2019, Eason Kuo, Taiwan iDDD Study Group
Issue 6: Legacy Systems
© 2019, Eason Kuo, Taiwan iDDD Study Group
So, We need Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
What is Context Maps ?
© 2019, Eason Kuo, Taiwan iDDD Study Group
Context Maps Description
Context Maps could reflect the collaborative or even
organizational teams relationships between different
Bounded Contexts in your systems.
What is Context Maps?
© 2019, Eason Kuo, Taiwan iDDD Study Group
A simple Context Maps draws the
U (Upstream) and D (Downstream)
Shows Bounded Contexts
integration relationship.
Upstream and Downstream
What is Context Maps?
© 2019, Eason Kuo, Taiwan iDDD Study Group
Focusing on what’s happening
between different bounded
contexts.
Inter-communication with teams.
Discover relationship / influence
from Bounded Contexts mapping
to your teams or others partners.
The helping from Context Maps
What is Context Maps?
© 2019, Eason Kuo, Taiwan iDDD Study Group
The Benefit for Drawing
Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
• A Context Map captures the existing terrain
and landscape will change as your current
project progresses, you can update it.
• we could to include other items such as
Modules, Aggregates or team allocation to
assist us.
• All Information, Context Maps can put into
reference document / wiki if it has value.
The Benefit for Drawing Context Maps
The Benefit for Drawing Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
• If detail too much, it’s helpless and
fewer people want to use the Map, assist
team to communication is important.
• It can providing views of the enterprise
not otherwise available
• Could find the some bottleneck like
integration, management .
The Benefit for Drawing Context Maps
The Benefit for Drawing Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
Relationship for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
Relationship
Relationship for Context Maps
Different Relationship
and communication
for everyone with you
© 2019, Eason Kuo, Taiwan iDDD Study Group
Is this important for
relationship ?
© 2019, Eason Kuo, Taiwan iDDD Study Group
Discovering potentially crisis
Helps to integrate different bounded contexts with other teams
© 2019, Eason Kuo, Taiwan iDDD Study Group
Relationship Patterns for
Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
• Different teams / separate bounded
context crossover in terms of
domain concepts and logic.
• With an explicit boundary subset of
the domain model that the teams
agree to share.
• shouldn’t be changed without
consultation with the other team
• At this case, recommended that
they do so as a partnership. Not distinguish U/D Relationship
1. Shared Kernel
Relationship Patterns for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
• When teams in 2 Contexts will
succeed or fail together
• coordinated planning of
development and joint
management of integration.
• cooperate on the evolution of
their interfaces to accommodate
the development needs of both
systems.
Not distinguish U/D Relationship
2. Partnership
Relationship Patterns for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
• teams are in an upstream-
downstream relationship.
• Upstream teams could
interdependently developing
feature.
• Downstream teams will be
influence from upstream.
3. Customer – Supplier
Relationship Patterns for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
• Also upstream-downstream
relationship.
• Upstream team has no
motivation to provide for the
downstream team’s needs.
• Downstream is helpless.
4. Conformist
Relationship Patterns for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
• If 2 sets of functionality have no
significant relationship
• cloud be completely cut loose from
each other.
• Declare bounded context have no
connection to others at all.
• Enable to find simple, specialized
solutions within the scope
5. Separate Way
Relationship Patterns for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
6. Big Ball of Mud
Relationship Patterns for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
• Happens on Shared Kernel, Partnership,
Customer-Supplier can not implement.
• Downstream build a translation layer
(Adapter) to protect inner domain
model.
• The ACL also be a interface layer to
cooperate with external system,
decrease changed.
7. Anticorruption Layer (ACL)
Relationship Patterns for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
• Define a protocol that gives access to
your subsystem as a set of services
• Open the protocol so that all who need
to integrate with you can use it.
• Other systems or components that
communicate with OHS will use
transformation layer for translating
our model into terms of their own,
similar to the ACL.
8. Open Host Service (OHS)
Relationship Patterns for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
• The translation between the models of
two Bounded Contexts requires a
common language
• Use a well-documented shared language
that can express the necessary domain
information, translating as necessary into
and out of that language.
• Publish Languages often combined with
Open Host Service
9. Public Language (PL)
Relationship Patterns for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
Sample Link DDD "Cargo" Sample Application
Example – DDD Cargo Sample
Relationship Patterns for Context Maps
© 2019, Eason Kuo, Taiwan iDDD Study Group
So far so good.
We can do some Practice.
© 2019, Eason Kuo, Taiwan iDDD Study Group
20 mins Practice
© 2019, Eason Kuo, Taiwan iDDD Study Group
Example – Insurance Company
20 mins Practice
© 2019, Eason Kuo, Taiwan iDDD Study Group
P M s I u M A -A D D r a W r
- CDA B 5 5 D t
W t s - CDA BC Io M W S c W y
- CDA B 3 > 3 B 5 5 D t
W x M4 6 b W d k f
1A> 5 5 D t
W t I m -A DB5 DC 1A> C 2 C 5 5 D A D D n
M . 6D -A>> D A -A D D I
. 6D -A>> D A g
W I m -A DB5 DC 1A> C e g s I
( 2 C 5 5 D t
W 1A> 5 5 D -A D D vy I R -A DB5 DC 1A> C
) 1B D -A D D l t
W x S W 1 I t l I f I . 6 D 1A> C
- CDA BC I i
© 2019, Eason Kuo, Taiwan iDDD Study Group
a n B 9 2 2 9 it C Ph od
e M 9 2 2 9 pS 9 1 x m
Dl ru pP U w
s 9 1 K 0 1 9 1
. 61 9 -1 Rx / 1 2 6
2. Partnerships
3. Customer-Supplier
4. Conformist
5. Separate Way
6. Big Ball of Mud
7. ACL
8. OHS
9. PL
. 61 9 -1
Example – Insurance Company
20 mins Practice
Sample Link Insurance Company Example
Example – Insurance Company
20 mins Practice
© 2019, Eason Kuo, Taiwan iDDD Study Group
Mapping the IDDD Three Bounded
Context - SaaSOvation
© 2019, Eason Kuo, Taiwan iDDD Study Group
• CollabOviation - social collaboration suite product.
• enables register to publish content.
• Using forums, shared calendars, blogs, wikis
• IdOvation - A reusable identity & access management model.
• provides secure role-based access management for
registered users
• ProjectOvation - An agile project management product.
• create project management assets
• analysis and design artifacts, and track progress
Recap Three Bounded Context Product
Mapping the IDDD Three Bounded Context - SaaSOvation
© 2019, Eason Kuo, Taiwan iDDD Study Group
• Unclear part for user permission in Collaboration Context
• Analyze and split unclear part (user permission) from Collaboration Context
• Put user permission part to Identity & Access Context
Collaboration Context Mapping Example
Mapping the IDDD Three Bounded Context - SaaSOvation
© 2019, Eason Kuo, Taiwan iDDD Study Group
Code Implementing for
Context Maps Representation
© 2019, Eason Kuo, Taiwan iDDD Study Group
• OHS - Implementing like API using REST, RPC,
SOAP or Message exchange.
• Even old way like Files, database is OHS (not
recommend)
• PL – represent Domain concept.
• Like XML/ JSON
• if you want to use User Interface, also HTML is Ok.
• Can be used in Event-Driven Architecture by Domain
Event to deliver message for subscriber.
• ACL – Define Domain Service or Repository to
request OHS and return PL
• Build a translation interface like Adapter and translate
to Value Object
OHS/PL and ACL for Implementing.
Code Implementing for Context Maps Representation
© 2019, Eason Kuo, Taiwan iDDD Study Group
• UserRoleAdater and CollaboratorTranslator
representation and translate it, creating the
appropriate Value Object instance –
Moderator.
• CollaboratorService is Domain Service
• But why creating Value Object ?
Collaboration Context with Identity & Access Context
Code Implementing for Context Maps Representation
© 2019, Eason Kuo, Taiwan iDDD Study Group
• In order to achieve greater degree of
autonomy, make dependent state is already
in place in our local system.
• In DDD, not use Cache. DDD create local
domain objects translated from the foreign
model, maintaining only the minimal
amount of state needed by the local model
(p795 - Integrate with Minimalism)
• To get the state in the first place we may
need to make limited.
Autonomy - Value Object for minimal amount of state
Code Implementing for Context Maps Representation
© 2019, Eason Kuo, Taiwan iDDD Study Group
Agile PM Context with Identity & Access Context
Code Implementing for Context Maps Representation
© 2019, Eason Kuo, Taiwan iDDD Study Group
• In Agile PM Context, each Domain Service
map to its Translator, and use Translator to
create Value Object to achieve minimal
mount of state data.
• Actually there is not one single
CollaborationAdapter. It is just a
placeholder for the several needed, it may
changes by times.
Agile PM Context with Collaboration Context
Code Implementing for Context Maps Representation
© 2019, Eason Kuo, Taiwan iDDD Study Group
• In Agile PM Context, a feature is “when
system creates the Product with a Forum
and Discussion. ”
• Agile PM Context needs objects that don’t
exist yet and won’t exist until it requests
them, it is Potential obstacle to autonomy.
• Because we depend on the availability of
the Collaboration Context in order to
create resources remotely.
Dependent on other Context to do Action issue
Code Implementing for Context Maps Representation
© 2019, Eason Kuo, Taiwan iDDD Study Group
• Using Standard Type Value Object
be implement States and default
state, to get default Value Object.
• If The state is READY, Then it’s can
access.
• In here, use Enum to list different
state.
Solution Method – Standard Type for Value Object
Code Implementing for Context Maps Representation
© 2019, Eason Kuo, Taiwan iDDD Study Group
Sharing Your Reward
10 mins with your group
© 2019, Eason Kuo, Taiwan iDDD Study Group
Context Maps
Recap Chapter 3
© 2019, Eason Kuo, Taiwan iDDD Study Group
Context Maps could reflect the collaborative or even
organizational teams relationships between different Bounded
Contexts in your systems.
Drawing your Context Map using 9 Relationship Patterns and
changes as your current project progresses.
Using ACL or OHS/PL could assist you to translate outer Bounded
Context , decrease unnecessary changes and protect your Domain
Model in your Bounded Context.
Recap for Context Maps (1)
© 2019, Eason Kuo, Taiwan iDDD Study Group
Try to make your Bounded Context could achieve a greater
degree of Autonomy
Autonomy - make dependent state is already in place in
our local system, maintaining only the minimal amount of
state needed by the local model.
Using Value Object / Standard Type skill to keep minimal
amount of state (More detail : Value Object in Chapter 6 )
Recap for Context Maps (2)
© 2019, Eason Kuo, Taiwan iDDD Study Group
Thanks!
© 2019, Eason Kuo, Taiwan iDDD Study Group

Más contenido relacionado

La actualidad más candente

Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationDomain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationOğuzhan Soykan
 
Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean ArchitectureMattia Battiston
 
GameDay - Achieving resilience through Chaos Engineering
GameDay - Achieving resilience through Chaos EngineeringGameDay - Achieving resilience through Chaos Engineering
GameDay - Achieving resilience through Chaos EngineeringDiUS
 
The Art of Discovering Bounded Contexts
The Art of Discovering Bounded ContextsThe Art of Discovering Bounded Contexts
The Art of Discovering Bounded ContextsNick Tune
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignNader Albert
 
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Steve Pember
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
 
Distributed Systems In One Lesson
Distributed Systems In One LessonDistributed Systems In One Lesson
Distributed Systems In One LessonTim Berglund
 
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...SlideTeam
 
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...InfluxData
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture stylesAraf Karsh Hamid
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledNicola Costantino
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven DesignDavid Berliner
 

La actualidad más candente (20)

Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationDomain Driven Design(DDD) Presentation
Domain Driven Design(DDD) Presentation
 
Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean Architecture
 
GameDay - Achieving resilience through Chaos Engineering
GameDay - Achieving resilience through Chaos EngineeringGameDay - Achieving resilience through Chaos Engineering
GameDay - Achieving resilience through Chaos Engineering
 
The Art of Discovering Bounded Contexts
The Art of Discovering Bounded ContextsThe Art of Discovering Bounded Contexts
The Art of Discovering Bounded Contexts
 
DDD In Agile
DDD In Agile   DDD In Agile
DDD In Agile
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
AWS ECS vs EKS
AWS ECS vs EKSAWS ECS vs EKS
AWS ECS vs EKS
 
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
 
Distributed Systems In One Lesson
Distributed Systems In One LessonDistributed Systems In One Lesson
Distributed Systems In One Lesson
 
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
 
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
 
Docker
DockerDocker
Docker
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture styles
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven Design
 

Similar a Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps

AN EMPIRICAL STUDY OF USING CLOUD-BASED SERVICES IN CAPSTONE PROJECT DEVELOPMENT
AN EMPIRICAL STUDY OF USING CLOUD-BASED SERVICES IN CAPSTONE PROJECT DEVELOPMENTAN EMPIRICAL STUDY OF USING CLOUD-BASED SERVICES IN CAPSTONE PROJECT DEVELOPMENT
AN EMPIRICAL STUDY OF USING CLOUD-BASED SERVICES IN CAPSTONE PROJECT DEVELOPMENTcsandit
 
IT_Marketing_Internship Final Presentation
IT_Marketing_Internship Final PresentationIT_Marketing_Internship Final Presentation
IT_Marketing_Internship Final PresentationKieran Caldwell
 
How to Start Your Application Modernization Journey
How to Start Your Application Modernization JourneyHow to Start Your Application Modernization Journey
How to Start Your Application Modernization JourneyVMware Tanzu
 
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
 
Assessment item 4 - Cloud Proposal and DesignValue 20TASK.docx
Assessment item 4 - Cloud Proposal and DesignValue 20TASK.docxAssessment item 4 - Cloud Proposal and DesignValue 20TASK.docx
Assessment item 4 - Cloud Proposal and DesignValue 20TASK.docxgalerussel59292
 
Cloud Native Patterns (Jamie Dobson, Container Solutions)
Cloud Native Patterns (Jamie Dobson, Container Solutions)Cloud Native Patterns (Jamie Dobson, Container Solutions)
Cloud Native Patterns (Jamie Dobson, Container Solutions)London Microservices
 
Bc ii chap 13 proposals
Bc ii   chap 13 proposalsBc ii   chap 13 proposals
Bc ii chap 13 proposalsMemoona Qadeer
 
Outsourcing SOA Implementation | Torry Harris Whitepaper
Outsourcing SOA Implementation | Torry Harris WhitepaperOutsourcing SOA Implementation | Torry Harris Whitepaper
Outsourcing SOA Implementation | Torry Harris WhitepaperTorry Harris Business Solutions
 
Connections, Verse mail migration and Watson Workspace experience – Canal Bar...
Connections, Verse mail migration and Watson Workspace experience – Canal Bar...Connections, Verse mail migration and Watson Workspace experience – Canal Bar...
Connections, Verse mail migration and Watson Workspace experience – Canal Bar...LetsConnect
 
ViON_Benefits of Cloud_WhitePaper_D6_V3
ViON_Benefits of Cloud_WhitePaper_D6_V3ViON_Benefits of Cloud_WhitePaper_D6_V3
ViON_Benefits of Cloud_WhitePaper_D6_V3Jessica Copeman
 
Building A Cloud Strategy PowerPoint Presentation Slides
Building A Cloud Strategy PowerPoint Presentation SlidesBuilding A Cloud Strategy PowerPoint Presentation Slides
Building A Cloud Strategy PowerPoint Presentation SlidesSlideTeam
 
IRJET- Deep Web Searching (DWS)
IRJET- Deep Web Searching (DWS)IRJET- Deep Web Searching (DWS)
IRJET- Deep Web Searching (DWS)IRJET Journal
 
Building A Cloud Strategy Powerpoint Presentation Slides
Building A Cloud Strategy Powerpoint Presentation SlidesBuilding A Cloud Strategy Powerpoint Presentation Slides
Building A Cloud Strategy Powerpoint Presentation SlidesSlideTeam
 
Exploring options to partners with & opertors challenges
Exploring options to partners with & opertors challengesExploring options to partners with & opertors challenges
Exploring options to partners with & opertors challengesVinod Sharma
 
Cloud service api design rules presentation
Cloud service api design rules presentationCloud service api design rules presentation
Cloud service api design rules presentationesebeus
 
70% of GCC Projects not using Collaboration Software
70% of GCC Projects not using Collaboration Software70% of GCC Projects not using Collaboration Software
70% of GCC Projects not using Collaboration SoftwarePhil Auguste
 
Open Source Telecom Survey 2021 Results & Discussion, Alan Quayle
Open Source Telecom Survey 2021 Results & Discussion, Alan QuayleOpen Source Telecom Survey 2021 Results & Discussion, Alan Quayle
Open Source Telecom Survey 2021 Results & Discussion, Alan QuayleAlan Quayle
 
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...apidays
 
IRJET- Voice based Email Application for Blind People
IRJET-  	  Voice based Email Application for Blind PeopleIRJET-  	  Voice based Email Application for Blind People
IRJET- Voice based Email Application for Blind PeopleIRJET Journal
 
Moving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmapsMoving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmapsJisc
 

Similar a Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps (20)

AN EMPIRICAL STUDY OF USING CLOUD-BASED SERVICES IN CAPSTONE PROJECT DEVELOPMENT
AN EMPIRICAL STUDY OF USING CLOUD-BASED SERVICES IN CAPSTONE PROJECT DEVELOPMENTAN EMPIRICAL STUDY OF USING CLOUD-BASED SERVICES IN CAPSTONE PROJECT DEVELOPMENT
AN EMPIRICAL STUDY OF USING CLOUD-BASED SERVICES IN CAPSTONE PROJECT DEVELOPMENT
 
IT_Marketing_Internship Final Presentation
IT_Marketing_Internship Final PresentationIT_Marketing_Internship Final Presentation
IT_Marketing_Internship Final Presentation
 
How to Start Your Application Modernization Journey
How to Start Your Application Modernization JourneyHow to Start Your Application Modernization Journey
How to Start Your Application Modernization Journey
 
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
 
Assessment item 4 - Cloud Proposal and DesignValue 20TASK.docx
Assessment item 4 - Cloud Proposal and DesignValue 20TASK.docxAssessment item 4 - Cloud Proposal and DesignValue 20TASK.docx
Assessment item 4 - Cloud Proposal and DesignValue 20TASK.docx
 
Cloud Native Patterns (Jamie Dobson, Container Solutions)
Cloud Native Patterns (Jamie Dobson, Container Solutions)Cloud Native Patterns (Jamie Dobson, Container Solutions)
Cloud Native Patterns (Jamie Dobson, Container Solutions)
 
Bc ii chap 13 proposals
Bc ii   chap 13 proposalsBc ii   chap 13 proposals
Bc ii chap 13 proposals
 
Outsourcing SOA Implementation | Torry Harris Whitepaper
Outsourcing SOA Implementation | Torry Harris WhitepaperOutsourcing SOA Implementation | Torry Harris Whitepaper
Outsourcing SOA Implementation | Torry Harris Whitepaper
 
Connections, Verse mail migration and Watson Workspace experience – Canal Bar...
Connections, Verse mail migration and Watson Workspace experience – Canal Bar...Connections, Verse mail migration and Watson Workspace experience – Canal Bar...
Connections, Verse mail migration and Watson Workspace experience – Canal Bar...
 
ViON_Benefits of Cloud_WhitePaper_D6_V3
ViON_Benefits of Cloud_WhitePaper_D6_V3ViON_Benefits of Cloud_WhitePaper_D6_V3
ViON_Benefits of Cloud_WhitePaper_D6_V3
 
Building A Cloud Strategy PowerPoint Presentation Slides
Building A Cloud Strategy PowerPoint Presentation SlidesBuilding A Cloud Strategy PowerPoint Presentation Slides
Building A Cloud Strategy PowerPoint Presentation Slides
 
IRJET- Deep Web Searching (DWS)
IRJET- Deep Web Searching (DWS)IRJET- Deep Web Searching (DWS)
IRJET- Deep Web Searching (DWS)
 
Building A Cloud Strategy Powerpoint Presentation Slides
Building A Cloud Strategy Powerpoint Presentation SlidesBuilding A Cloud Strategy Powerpoint Presentation Slides
Building A Cloud Strategy Powerpoint Presentation Slides
 
Exploring options to partners with & opertors challenges
Exploring options to partners with & opertors challengesExploring options to partners with & opertors challenges
Exploring options to partners with & opertors challenges
 
Cloud service api design rules presentation
Cloud service api design rules presentationCloud service api design rules presentation
Cloud service api design rules presentation
 
70% of GCC Projects not using Collaboration Software
70% of GCC Projects not using Collaboration Software70% of GCC Projects not using Collaboration Software
70% of GCC Projects not using Collaboration Software
 
Open Source Telecom Survey 2021 Results & Discussion, Alan Quayle
Open Source Telecom Survey 2021 Results & Discussion, Alan QuayleOpen Source Telecom Survey 2021 Results & Discussion, Alan Quayle
Open Source Telecom Survey 2021 Results & Discussion, Alan Quayle
 
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...
 
IRJET- Voice based Email Application for Blind People
IRJET-  	  Voice based Email Application for Blind PeopleIRJET-  	  Voice based Email Application for Blind People
IRJET- Voice based Email Application for Blind People
 
Moving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmapsMoving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmaps
 

Más de Eason Kuo

[2020 DDD TW Conference Workshop] Go Ahead DDD Tactical Modeling
[2020 DDD TW Conference Workshop] Go Ahead DDD Tactical Modeling[2020 DDD TW Conference Workshop] Go Ahead DDD Tactical Modeling
[2020 DDD TW Conference Workshop] Go Ahead DDD Tactical ModelingEason Kuo
 
DDD 拼圖中的另一半 – 以戰術實踐代碼
DDD 拼圖中的另一半 – 以戰術實踐代碼DDD 拼圖中的另一半 – 以戰術實踐代碼
DDD 拼圖中的另一半 – 以戰術實踐代碼Eason Kuo
 
Working effectively with legacy code study group - ch12,13,14
Working effectively with legacy code study group -  ch12,13,14Working effectively with legacy code study group -  ch12,13,14
Working effectively with legacy code study group - ch12,13,14Eason Kuo
 
IDDD Ch.09 Module
IDDD Ch.09 ModuleIDDD Ch.09 Module
IDDD Ch.09 ModuleEason Kuo
 
IDDD Ch.08 Domain Event
IDDD Ch.08 Domain EventIDDD Ch.08 Domain Event
IDDD Ch.08 Domain EventEason Kuo
 
DDD Reading Club Sharing Ch. 6 Value Object
DDD Reading Club SharingCh. 6 Value ObjectDDD Reading Club SharingCh. 6 Value Object
DDD Reading Club Sharing Ch. 6 Value ObjectEason Kuo
 
2016 - What should we do in Startup
2016 - What should we do in Startup2016 - What should we do in Startup
2016 - What should we do in StartupEason Kuo
 
20140904 - ADRMS 介紹 - 企業文件版本權管理
20140904 - ADRMS 介紹 - 企業文件版本權管理20140904 - ADRMS 介紹 - 企業文件版本權管理
20140904 - ADRMS 介紹 - 企業文件版本權管理Eason Kuo
 
第八屆微軟學生大使 - 第三階段面試簡報主題 - Kinect開發概觀
第八屆微軟學生大使 - 第三階段面試簡報主題 - Kinect開發概觀第八屆微軟學生大使 - 第三階段面試簡報主題 - Kinect開發概觀
第八屆微軟學生大使 - 第三階段面試簡報主題 - Kinect開發概觀Eason Kuo
 
2012/05/07 - Kinect Senor Development Introduction
2012/05/07 - Kinect Senor Development Introduction2012/05/07 - Kinect Senor Development Introduction
2012/05/07 - Kinect Senor Development IntroductionEason Kuo
 
Windows 8 介紹與 Windows 8 App 開發概觀
Windows 8 介紹與 Windows 8 App 開發概觀Windows 8 介紹與 Windows 8 App 開發概觀
Windows 8 介紹與 Windows 8 App 開發概觀Eason Kuo
 
分享擔任第八屆微軟學生大使的過程與經驗
分享擔任第八屆微軟學生大使的過程與經驗分享擔任第八屆微軟學生大使的過程與經驗
分享擔任第八屆微軟學生大使的過程與經驗Eason Kuo
 
招募第九屆微軟學生大使 - 第三階段的專案競賽規則
招募第九屆微軟學生大使 - 第三階段的專案競賽規則招募第九屆微軟學生大使 - 第三階段的專案競賽規則
招募第九屆微軟學生大使 - 第三階段的專案競賽規則Eason Kuo
 
Windows Phone 7 on Visual Studio 2010
Windows Phone 7 on Visual Studio 2010Windows Phone 7 on Visual Studio 2010
Windows Phone 7 on Visual Studio 2010Eason Kuo
 
Windows Phone Survey on Game Development
Windows Phone Survey on Game DevelopmentWindows Phone Survey on Game Development
Windows Phone Survey on Game DevelopmentEason Kuo
 
視界 - 微客志工師大Wake分享會
視界 -  微客志工師大Wake分享會視界 -  微客志工師大Wake分享會
視界 - 微客志工師大Wake分享會Eason Kuo
 
微客志工 - 533T 菲去cebu 熱血服霧
微客志工 - 533T 菲去cebu 熱血服霧微客志工 - 533T 菲去cebu 熱血服霧
微客志工 - 533T 菲去cebu 熱血服霧Eason Kuo
 

Más de Eason Kuo (17)

[2020 DDD TW Conference Workshop] Go Ahead DDD Tactical Modeling
[2020 DDD TW Conference Workshop] Go Ahead DDD Tactical Modeling[2020 DDD TW Conference Workshop] Go Ahead DDD Tactical Modeling
[2020 DDD TW Conference Workshop] Go Ahead DDD Tactical Modeling
 
DDD 拼圖中的另一半 – 以戰術實踐代碼
DDD 拼圖中的另一半 – 以戰術實踐代碼DDD 拼圖中的另一半 – 以戰術實踐代碼
DDD 拼圖中的另一半 – 以戰術實踐代碼
 
Working effectively with legacy code study group - ch12,13,14
Working effectively with legacy code study group -  ch12,13,14Working effectively with legacy code study group -  ch12,13,14
Working effectively with legacy code study group - ch12,13,14
 
IDDD Ch.09 Module
IDDD Ch.09 ModuleIDDD Ch.09 Module
IDDD Ch.09 Module
 
IDDD Ch.08 Domain Event
IDDD Ch.08 Domain EventIDDD Ch.08 Domain Event
IDDD Ch.08 Domain Event
 
DDD Reading Club Sharing Ch. 6 Value Object
DDD Reading Club SharingCh. 6 Value ObjectDDD Reading Club SharingCh. 6 Value Object
DDD Reading Club Sharing Ch. 6 Value Object
 
2016 - What should we do in Startup
2016 - What should we do in Startup2016 - What should we do in Startup
2016 - What should we do in Startup
 
20140904 - ADRMS 介紹 - 企業文件版本權管理
20140904 - ADRMS 介紹 - 企業文件版本權管理20140904 - ADRMS 介紹 - 企業文件版本權管理
20140904 - ADRMS 介紹 - 企業文件版本權管理
 
第八屆微軟學生大使 - 第三階段面試簡報主題 - Kinect開發概觀
第八屆微軟學生大使 - 第三階段面試簡報主題 - Kinect開發概觀第八屆微軟學生大使 - 第三階段面試簡報主題 - Kinect開發概觀
第八屆微軟學生大使 - 第三階段面試簡報主題 - Kinect開發概觀
 
2012/05/07 - Kinect Senor Development Introduction
2012/05/07 - Kinect Senor Development Introduction2012/05/07 - Kinect Senor Development Introduction
2012/05/07 - Kinect Senor Development Introduction
 
Windows 8 介紹與 Windows 8 App 開發概觀
Windows 8 介紹與 Windows 8 App 開發概觀Windows 8 介紹與 Windows 8 App 開發概觀
Windows 8 介紹與 Windows 8 App 開發概觀
 
分享擔任第八屆微軟學生大使的過程與經驗
分享擔任第八屆微軟學生大使的過程與經驗分享擔任第八屆微軟學生大使的過程與經驗
分享擔任第八屆微軟學生大使的過程與經驗
 
招募第九屆微軟學生大使 - 第三階段的專案競賽規則
招募第九屆微軟學生大使 - 第三階段的專案競賽規則招募第九屆微軟學生大使 - 第三階段的專案競賽規則
招募第九屆微軟學生大使 - 第三階段的專案競賽規則
 
Windows Phone 7 on Visual Studio 2010
Windows Phone 7 on Visual Studio 2010Windows Phone 7 on Visual Studio 2010
Windows Phone 7 on Visual Studio 2010
 
Windows Phone Survey on Game Development
Windows Phone Survey on Game DevelopmentWindows Phone Survey on Game Development
Windows Phone Survey on Game Development
 
視界 - 微客志工師大Wake分享會
視界 -  微客志工師大Wake分享會視界 -  微客志工師大Wake分享會
視界 - 微客志工師大Wake分享會
 
微客志工 - 533T 菲去cebu 熱血服霧
微客志工 - 533T 菲去cebu 熱血服霧微客志工 - 533T 菲去cebu 熱血服霧
微客志工 - 533T 菲去cebu 熱血服霧
 

Último

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
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
 
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
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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?
 
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
 
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...
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps

  • 1. Chapter 3 - Context Maps Speaker: Eason Kuo Date: 2019/04/10 @ Taiwan iDDD Study Group Why Context Maps Are So Essential
  • 2. Define business domain to Problem Space, distinguish each business subdomain By ubiquitous language, find the boundaries of each subdomain and distinguish the Bounded Context Recap Bounded Context © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 3. Define business domain to Problem Space, distinguish each business subdomain By ubiquitous language, find the boundaries of each subdomain and distinguish the Bounded Context Recap Bounded Context © 2019, Eason Kuo, Taiwan iDDD Study Group Okay Everything seems great, right?
  • 4. But ! © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 5. Found Subdomain & Bounded Contexts Is Enough? © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 6. No. There are some issues you should consider… © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 7. Issue 1 : More Complex Scenario, More Unclearly Bounded Context
  • 8. Issue 2: Organization Complexity Sample from Internet, Not I Say.. © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 9. Issue 3: Large team size or multiple development teams
  • 10. Issue 4: Distributed or offshore team © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 11. Issue 5: External, Separate Systems © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 12. Issue 6: Legacy Systems © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 13. So, We need Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 14. What is Context Maps ? © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 15. Context Maps Description Context Maps could reflect the collaborative or even organizational teams relationships between different Bounded Contexts in your systems. What is Context Maps? © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 16. A simple Context Maps draws the U (Upstream) and D (Downstream) Shows Bounded Contexts integration relationship. Upstream and Downstream What is Context Maps? © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 17. Focusing on what’s happening between different bounded contexts. Inter-communication with teams. Discover relationship / influence from Bounded Contexts mapping to your teams or others partners. The helping from Context Maps What is Context Maps? © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 18. The Benefit for Drawing Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 19. • A Context Map captures the existing terrain and landscape will change as your current project progresses, you can update it. • we could to include other items such as Modules, Aggregates or team allocation to assist us. • All Information, Context Maps can put into reference document / wiki if it has value. The Benefit for Drawing Context Maps The Benefit for Drawing Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 20. • If detail too much, it’s helpless and fewer people want to use the Map, assist team to communication is important. • It can providing views of the enterprise not otherwise available • Could find the some bottleneck like integration, management . The Benefit for Drawing Context Maps The Benefit for Drawing Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 21. Relationship for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 22. Relationship Relationship for Context Maps Different Relationship and communication for everyone with you © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 23. Is this important for relationship ? © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 25. Helps to integrate different bounded contexts with other teams © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 26. Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 27. • Different teams / separate bounded context crossover in terms of domain concepts and logic. • With an explicit boundary subset of the domain model that the teams agree to share. • shouldn’t be changed without consultation with the other team • At this case, recommended that they do so as a partnership. Not distinguish U/D Relationship 1. Shared Kernel Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 28. • When teams in 2 Contexts will succeed or fail together • coordinated planning of development and joint management of integration. • cooperate on the evolution of their interfaces to accommodate the development needs of both systems. Not distinguish U/D Relationship 2. Partnership Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 29. • teams are in an upstream- downstream relationship. • Upstream teams could interdependently developing feature. • Downstream teams will be influence from upstream. 3. Customer – Supplier Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 30. • Also upstream-downstream relationship. • Upstream team has no motivation to provide for the downstream team’s needs. • Downstream is helpless. 4. Conformist Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 31. • If 2 sets of functionality have no significant relationship • cloud be completely cut loose from each other. • Declare bounded context have no connection to others at all. • Enable to find simple, specialized solutions within the scope 5. Separate Way Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 32. 6. Big Ball of Mud Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 33. • Happens on Shared Kernel, Partnership, Customer-Supplier can not implement. • Downstream build a translation layer (Adapter) to protect inner domain model. • The ACL also be a interface layer to cooperate with external system, decrease changed. 7. Anticorruption Layer (ACL) Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 34. • Define a protocol that gives access to your subsystem as a set of services • Open the protocol so that all who need to integrate with you can use it. • Other systems or components that communicate with OHS will use transformation layer for translating our model into terms of their own, similar to the ACL. 8. Open Host Service (OHS) Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 35. • The translation between the models of two Bounded Contexts requires a common language • Use a well-documented shared language that can express the necessary domain information, translating as necessary into and out of that language. • Publish Languages often combined with Open Host Service 9. Public Language (PL) Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 36. Sample Link DDD "Cargo" Sample Application Example – DDD Cargo Sample Relationship Patterns for Context Maps © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 37. So far so good. We can do some Practice. © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 38. 20 mins Practice © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 39. Example – Insurance Company 20 mins Practice © 2019, Eason Kuo, Taiwan iDDD Study Group P M s I u M A -A D D r a W r - CDA B 5 5 D t W t s - CDA BC Io M W S c W y - CDA B 3 > 3 B 5 5 D t W x M4 6 b W d k f 1A> 5 5 D t W t I m -A DB5 DC 1A> C 2 C 5 5 D A D D n M . 6D -A>> D A -A D D I . 6D -A>> D A g W I m -A DB5 DC 1A> C e g s I ( 2 C 5 5 D t W 1A> 5 5 D -A D D vy I R -A DB5 DC 1A> C ) 1B D -A D D l t W x S W 1 I t l I f I . 6 D 1A> C - CDA BC I i
  • 40. © 2019, Eason Kuo, Taiwan iDDD Study Group a n B 9 2 2 9 it C Ph od e M 9 2 2 9 pS 9 1 x m Dl ru pP U w s 9 1 K 0 1 9 1 . 61 9 -1 Rx / 1 2 6 2. Partnerships 3. Customer-Supplier 4. Conformist 5. Separate Way 6. Big Ball of Mud 7. ACL 8. OHS 9. PL . 61 9 -1 Example – Insurance Company 20 mins Practice
  • 41. Sample Link Insurance Company Example Example – Insurance Company 20 mins Practice © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 42. Mapping the IDDD Three Bounded Context - SaaSOvation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 43. • CollabOviation - social collaboration suite product. • enables register to publish content. • Using forums, shared calendars, blogs, wikis • IdOvation - A reusable identity & access management model. • provides secure role-based access management for registered users • ProjectOvation - An agile project management product. • create project management assets • analysis and design artifacts, and track progress Recap Three Bounded Context Product Mapping the IDDD Three Bounded Context - SaaSOvation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 44. • Unclear part for user permission in Collaboration Context • Analyze and split unclear part (user permission) from Collaboration Context • Put user permission part to Identity & Access Context Collaboration Context Mapping Example Mapping the IDDD Three Bounded Context - SaaSOvation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 45. Code Implementing for Context Maps Representation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 46. • OHS - Implementing like API using REST, RPC, SOAP or Message exchange. • Even old way like Files, database is OHS (not recommend) • PL – represent Domain concept. • Like XML/ JSON • if you want to use User Interface, also HTML is Ok. • Can be used in Event-Driven Architecture by Domain Event to deliver message for subscriber. • ACL – Define Domain Service or Repository to request OHS and return PL • Build a translation interface like Adapter and translate to Value Object OHS/PL and ACL for Implementing. Code Implementing for Context Maps Representation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 47. • UserRoleAdater and CollaboratorTranslator representation and translate it, creating the appropriate Value Object instance – Moderator. • CollaboratorService is Domain Service • But why creating Value Object ? Collaboration Context with Identity & Access Context Code Implementing for Context Maps Representation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 48. • In order to achieve greater degree of autonomy, make dependent state is already in place in our local system. • In DDD, not use Cache. DDD create local domain objects translated from the foreign model, maintaining only the minimal amount of state needed by the local model (p795 - Integrate with Minimalism) • To get the state in the first place we may need to make limited. Autonomy - Value Object for minimal amount of state Code Implementing for Context Maps Representation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 49. Agile PM Context with Identity & Access Context Code Implementing for Context Maps Representation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 50. • In Agile PM Context, each Domain Service map to its Translator, and use Translator to create Value Object to achieve minimal mount of state data. • Actually there is not one single CollaborationAdapter. It is just a placeholder for the several needed, it may changes by times. Agile PM Context with Collaboration Context Code Implementing for Context Maps Representation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 51. • In Agile PM Context, a feature is “when system creates the Product with a Forum and Discussion. ” • Agile PM Context needs objects that don’t exist yet and won’t exist until it requests them, it is Potential obstacle to autonomy. • Because we depend on the availability of the Collaboration Context in order to create resources remotely. Dependent on other Context to do Action issue Code Implementing for Context Maps Representation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 52. • Using Standard Type Value Object be implement States and default state, to get default Value Object. • If The state is READY, Then it’s can access. • In here, use Enum to list different state. Solution Method – Standard Type for Value Object Code Implementing for Context Maps Representation © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 53. Sharing Your Reward 10 mins with your group © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 54. Context Maps Recap Chapter 3 © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 55. Context Maps could reflect the collaborative or even organizational teams relationships between different Bounded Contexts in your systems. Drawing your Context Map using 9 Relationship Patterns and changes as your current project progresses. Using ACL or OHS/PL could assist you to translate outer Bounded Context , decrease unnecessary changes and protect your Domain Model in your Bounded Context. Recap for Context Maps (1) © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 56. Try to make your Bounded Context could achieve a greater degree of Autonomy Autonomy - make dependent state is already in place in our local system, maintaining only the minimal amount of state needed by the local model. Using Value Object / Standard Type skill to keep minimal amount of state (More detail : Value Object in Chapter 6 ) Recap for Context Maps (2) © 2019, Eason Kuo, Taiwan iDDD Study Group
  • 57. Thanks! © 2019, Eason Kuo, Taiwan iDDD Study Group