SlideShare a Scribd company logo
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

More Related Content

What's hot

Yow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with NotesYow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with NotesAdrian Cockcroft
 
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
 
AWS VS AZURE VS GCP.pptx
AWS VS AZURE VS GCP.pptxAWS VS AZURE VS GCP.pptx
AWS VS AZURE VS GCP.pptxRaneesh Ramesan
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQAraf Karsh Hamid
 
Improve the Development Process with DevOps Practices by Fedorov Vadim
Improve the Development Process with DevOps Practices by Fedorov VadimImprove the Development Process with DevOps Practices by Fedorov Vadim
Improve the Development Process with DevOps Practices by Fedorov VadimSoftServe
 
DevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDDDevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDDGregory Boissinot
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioAraf Karsh Hamid
 
Zero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesWojciech Barczyński
 
Mainframe Modernization with AWS: Patterns and Best Practices
Mainframe Modernization with AWS: Patterns and Best PracticesMainframe Modernization with AWS: Patterns and Best Practices
Mainframe Modernization with AWS: Patterns and Best PracticesAmazon Web Services
 
Considerations for your Cloud Journey
Considerations for your Cloud JourneyConsiderations for your Cloud Journey
Considerations for your Cloud JourneyAmazon Web Services
 
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...Amazon Web Services
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAraf Karsh Hamid
 
Full Isolation in Multi-Tenant SaaS with Kubernetes and Istio
Full Isolation in Multi-Tenant SaaS with Kubernetes and IstioFull Isolation in Multi-Tenant SaaS with Kubernetes and Istio
Full Isolation in Multi-Tenant SaaS with Kubernetes and IstioIchsan Rahardianto
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesAraf Karsh Hamid
 
D2 domain driven-design
D2 domain driven-designD2 domain driven-design
D2 domain driven-designArnaud Bouchez
 

What's hot (20)

Yow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with NotesYow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with Notes
 
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
 
AWS VS AZURE VS GCP.pptx
AWS VS AZURE VS GCP.pptxAWS VS AZURE VS GCP.pptx
AWS VS AZURE VS GCP.pptx
 
Event Storming and Saga
Event Storming and SagaEvent Storming and Saga
Event Storming and Saga
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
 
Improve the Development Process with DevOps Practices by Fedorov Vadim
Improve the Development Process with DevOps Practices by Fedorov VadimImprove the Development Process with DevOps Practices by Fedorov Vadim
Improve the Development Process with DevOps Practices by Fedorov Vadim
 
DevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDDDevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDD
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes Istio
 
Zero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with Kubernetes
 
Mainframe Modernization with AWS: Patterns and Best Practices
Mainframe Modernization with AWS: Patterns and Best PracticesMainframe Modernization with AWS: Patterns and Best Practices
Mainframe Modernization with AWS: Patterns and Best Practices
 
Cloud Migration Workshop
Cloud Migration WorkshopCloud Migration Workshop
Cloud Migration Workshop
 
Considerations for your Cloud Journey
Considerations for your Cloud JourneyConsiderations for your Cloud Journey
Considerations for your Cloud Journey
 
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 
Full Isolation in Multi-Tenant SaaS with Kubernetes and Istio
Full Isolation in Multi-Tenant SaaS with Kubernetes and IstioFull Isolation in Multi-Tenant SaaS with Kubernetes and Istio
Full Isolation in Multi-Tenant SaaS with Kubernetes and Istio
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
From Monolith to Microservices
From Monolith to MicroservicesFrom Monolith to Microservices
From Monolith to Microservices
 
D2 domain driven-design
D2 domain driven-designD2 domain driven-design
D2 domain driven-design
 

Similar to 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 to 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
 

More from 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
 

More from 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 熱血服霧
 

Recently uploaded

IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfChristopherTHyatt
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Alison B. Lowndes
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfalexjohnson7307
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...Product School
 

Recently uploaded (20)

IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 

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