SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationDomain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationOğuzhan Soykan
 
Modeling microservices using DDD
Modeling microservices using DDDModeling microservices using DDD
Modeling microservices using DDDMasashi Narumoto
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaAraf Karsh Hamid
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Araf Karsh Hamid
 
Saga about distributed business transactions in microservices world
Saga about distributed business transactions in microservices worldSaga about distributed business transactions in microservices world
Saga about distributed business transactions in microservices worldMikalai Alimenkou
 
Domain driven design
Domain driven designDomain driven design
Domain driven designits_skm
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanAraf Karsh Hamid
 
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
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesRadosław Maziarka
 
Event-driven microservices
Event-driven microservicesEvent-driven microservices
Event-driven microservicesAndrew Schofield
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for MicroservicesChris Richardson
 
Cloud native application 입문
Cloud native application 입문Cloud native application 입문
Cloud native application 입문Seong-Bok Lee
 
Event Driven Software Architecture Pattern
Event Driven Software Architecture PatternEvent Driven Software Architecture Pattern
Event Driven Software Architecture Patternjeetendra mandal
 
微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew WuAndrew Wu
 

Mais procurados (20)

Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationDomain Driven Design(DDD) Presentation
Domain Driven Design(DDD) Presentation
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Modeling microservices using DDD
Modeling microservices using DDDModeling microservices using DDD
Modeling microservices using DDD
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018
 
Saga about distributed business transactions in microservices world
Saga about distributed business transactions in microservices worldSaga about distributed business transactions in microservices world
Saga about distributed business transactions in microservices world
 
Microservices Decomposition Patterns
Microservices Decomposition PatternsMicroservices Decomposition Patterns
Microservices Decomposition Patterns
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, Kanban
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
 
Event-driven microservices
Event-driven microservicesEvent-driven microservices
Event-driven microservices
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for Microservices
 
Cloud native application 입문
Cloud native application 입문Cloud native application 입문
Cloud native application 입문
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Event Driven Software Architecture Pattern
Event Driven Software Architecture PatternEvent Driven Software Architecture Pattern
Event Driven Software Architecture Pattern
 
微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu微服務的基礎建設 - Service Discovery, Andrew Wu
微服務的基礎建設 - Service Discovery, Andrew Wu
 

Semelhante 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
 

Semelhante 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
 

Mais 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
 

Mais 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

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

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