SlideShare a Scribd company logo
Boundaries & Responsibilities:
 Teams, Apps, API and Data
Agenda

• Strategic Design
• Bounded Context and Context Maps
• Integration Strategies & Recipes
• Data Ownership
   • Integrity & Consistency
   • Duplication
Strategic Design

Why?
• Scaling up complex domain models
• Total unification of the domain model for a large system
  will not be feasible or cost-effective
• Modularity without losing benefits of integration
Design and Politics Often Intersect
Strategic Design

What?
• Need for a systematic, evolving design strategy
• Doesn’t happen by itself or through good intentions
• Proactive decisions about what should be unified
• Pragmatic recognition of what’s not unified
Bounded Context

• Defines the range of applicability of each domain model
• Multiple models coexist and apply in different contexts
• Defines consistency boundaries
Bounded Context
Bounded Context Not Defined

• Unclear in what context model should be applied
• Unclear in what context model should not be applied
• Lack of focus and confusion by issues outside
Bounded Context

How?
• Explicitly define a scope of a particular model
• Explicitly set boundaries
   • Team organization
   • Usage within a specific application
   • Physical manifestation (codebase and DB schema)
Bounded Context

Clarity & Freedom
• Keep the model consistent within its bounds
• Team responsible for the model deals with the whole
  lifecycle of each object, including persistence
• Teams don’t get distracted or confused by issues outside
Recognizing Splinters

Indicators
• Confusion of domain language
• Code interfaces don’t match up
• Duplicate concepts
• False cognates
Context Map

• Project’s contexts
• Relationships between contexts
Context Map

• Identify each Model on the project
• Define Bounded Context
• Name each Bounded Context
• Describe points of contact between models
• Outline explicit translation
• Highlight any sharing
Context Map

Reflects:
• Team structure
• Management structure
• Product strategy
• Timelines
• Trust
• Physical office space
Context Map
MAP THE TERRAIN!
Context Map
Context Map

• Bounded Contexts partition should be based on cost-
  benefit trade-off:
   • Independent team action
   • Direct and rich integration
Larger Bounded Context

• Flow between user tasks is smoother (unified model)
• Coherent and easy-to-understand model instead of two
  distinct ones plus mapping
• Translation between two models can be difficult
• Shared language fosters clear team communication
Smaller Bounded Context

• Communication overhead between developers is
  reduced
• Continuous integration is easier with smaller teams and
  code bases
• Different models can cater to special needs
• Ubiquitous language dialects can be encompassed by
  smaller models
Technical Considerations

• Deployment
• Versioning and backwards compatibility
• Data migration
• Environments
Integration Strategies and Recipes

• Shared Kernel
• Customer/Supplier
• Conformist
• Open Host
• Published Language
• Anticorruption Layer
• Separate Ways
Integration Strategies and Recipes
DECISIONS ARE NOT
  IRREVERSIBLE
Data Ownership

• Data Integrity
• Data Duplication
Data Duplication

           Is data duplication BAD?
Data Duplication

• Staleness
• Inconsistency
Data Duplication



         The data may be stale…
        but is that really an issue?
Data Integrity

• Different data has different requirements
   • Product Specifications
   • Product Assets
   • Product Pricing
   • Product Recommendations
• Cost-benefit analysis

More Related Content

PPTX
Large – scale structure (ddd)
Phuoc Ho
 
ODP
#pugMi - DDD - Value objects
Simone Gentili
 
PDF
Introduction to Domain Driven Design
Christos Tsakostas
 
PDF
Integrating Bounded Contexts - Mini-workshop
Matthias Noback
 
PDF
Bounded Context e CQRS na evolução de aplicações .NET legadas
Yan Justino
 
PDF
Bounded Context
HyeonSeok Choi
 
PDF
Mobile application testing
Gaurav Singh
 
PPTX
WHICH TECHNOLOGY WILL BE IN FOCUS FOR MOBILE APP DEVELOPMENT IN 2017
DreamOrbit Softech Pvt Ltd.
 
Large – scale structure (ddd)
Phuoc Ho
 
#pugMi - DDD - Value objects
Simone Gentili
 
Introduction to Domain Driven Design
Christos Tsakostas
 
Integrating Bounded Contexts - Mini-workshop
Matthias Noback
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Yan Justino
 
Bounded Context
HyeonSeok Choi
 
Mobile application testing
Gaurav Singh
 
WHICH TECHNOLOGY WILL BE IN FOCUS FOR MOBILE APP DEVELOPMENT IN 2017
DreamOrbit Softech Pvt Ltd.
 

Viewers also liked (13)

PPTX
Reading user’s mind from their eye’s
Arsha Raman
 
PPTX
Busy partner connect 2016
AT 9
 
PDF
A research report on the establishment of private independent blood banks in ...
Rijo Stephen Cletus
 
PDF
School
David Lightbound
 
PDF
AD-IN-ONE SUCCESS STORY GREY GROUP PRAGUE.PDF
Libor Cerny
 
PPT
CS1308 - 02/08/10
Megan Goldner Martinez
 
PPTX
Architectyral walkthrough
Mishti Priyanca
 
PPTX
Exploring Mobisy
Bizom Bangalore
 
PDF
Solutions Catalog # 3 by ISIS Papyrus Software
ISIS Papyrus Software
 
PDF
Performance testing methodologies
Dhanunjay Rasamala
 
DOC
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
Vicky Aryan
 
Reading user’s mind from their eye’s
Arsha Raman
 
Busy partner connect 2016
AT 9
 
A research report on the establishment of private independent blood banks in ...
Rijo Stephen Cletus
 
AD-IN-ONE SUCCESS STORY GREY GROUP PRAGUE.PDF
Libor Cerny
 
CS1308 - 02/08/10
Megan Goldner Martinez
 
Architectyral walkthrough
Mishti Priyanca
 
Exploring Mobisy
Bizom Bangalore
 
Solutions Catalog # 3 by ISIS Papyrus Software
ISIS Papyrus Software
 
Performance testing methodologies
Dhanunjay Rasamala
 
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
Vicky Aryan
 
Ad

Similar to Ddd boundaries & responsibilities (20)

PDF
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
Paulo Clavijo
 
PPTX
Domain Driven Design
Nader Albert
 
PPTX
Domain driven design simplified
Vinod Wilson
 
PPTX
Domain Driven Design Introduction
wojtek_s
 
PPSX
Domain Driven Design
Araf Karsh Hamid
 
PDF
Writing good C# code for good cloud applications - Draft Oct 20, 2014
Marco Parenzan
 
PDF
DDD tales from ProductLand - NewCrafts Paris - May 2024
Alberto Brandolini
 
PPTX
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
Erez PEDRO
 
PDF
Evolving Software Patterns
Mark Rickerby
 
PDF
Software is not a Building - Designing Technical Architecture for Change
Cantina
 
PPTX
Domain driven design
its_skm
 
PDF
Domain Driven Design (Ultra) Distilled
Nicola Costantino
 
PDF
Aligning Bounded Contexts with Subdomains in Legacy Code - NDC Oslo 2021
Mufrid Krilic
 
PDF
Domain-Driven Design
Geeks Anonymes
 
PDF
From class to architecture
Marcin Hawraniak
 
PPT
Architecting for Change: An Agile Approach
Ben Stopford
 
PDF
Domain-Driven Design
Bradley Holt
 
PPT
Relentless Refactoring
Mark Rickerby
 
PDF
Big Data & the Enterprise
Ben Stopford
 
PPTX
Domain Driven Design & Hexagonal Architecture
Can Pekdemir
 
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
Paulo Clavijo
 
Domain Driven Design
Nader Albert
 
Domain driven design simplified
Vinod Wilson
 
Domain Driven Design Introduction
wojtek_s
 
Domain Driven Design
Araf Karsh Hamid
 
Writing good C# code for good cloud applications - Draft Oct 20, 2014
Marco Parenzan
 
DDD tales from ProductLand - NewCrafts Paris - May 2024
Alberto Brandolini
 
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
Erez PEDRO
 
Evolving Software Patterns
Mark Rickerby
 
Software is not a Building - Designing Technical Architecture for Change
Cantina
 
Domain driven design
its_skm
 
Domain Driven Design (Ultra) Distilled
Nicola Costantino
 
Aligning Bounded Contexts with Subdomains in Legacy Code - NDC Oslo 2021
Mufrid Krilic
 
Domain-Driven Design
Geeks Anonymes
 
From class to architecture
Marcin Hawraniak
 
Architecting for Change: An Agile Approach
Ben Stopford
 
Domain-Driven Design
Bradley Holt
 
Relentless Refactoring
Mark Rickerby
 
Big Data & the Enterprise
Ben Stopford
 
Domain Driven Design & Hexagonal Architecture
Can Pekdemir
 
Ad

Ddd boundaries & responsibilities

Editor's Notes

  • #4: Monolithic all-encompassing domain model on one side of the spectrum (duplications, contradictions)Set of small, distinct sub-systems glued together with ad-hoc interfaces (lacks the power to solve enterprise-wide problems)
  • #8: Metaphor:Cells can exist because their membranes define what is in and determine what can pass!
  • #10: Don’t get distracted or confused by issues outside
  • #11: BOUNDED CONTEXTS gives team members a clear and shared understanding of what has to be consistent and what can develop independently.
  • #12: Litmus Paper Duplicate concepts: two model elements that represent the same conceptFalse cognates: two people who use the same term and think they are talking about the same thing, but they are not (less common, more insidiously harmful)
  • #13: People on other teams won’t be aware of the CONTEXT bounds and will unknowingly make changes that blur the edges or complicate interconnections.
  • #15: Overlap between project management and software design
  • #17: MAP THE TERRAIN
  • #18: SUBSTANCE OVER FORMWhatever forms the MAP takes it must be shared and understood by everyone on the projectMust provide clear name of each BC and must make points of contact and their nature clear
  • #29: “We spend a great deal of effort maintaining data, maintaining integrity, maintainingconsistency, and some fool wants to duplicate this problem all over, now we have two lots of datato manage and synchronise!”The only issue that really exists is that this data could be stale or inconsistent – it may be 5seconds out of date, or 10 seconds, or maybe just 1 second – but this data may not be up to date.Well, of course it may not be up to date… but is any of the data in your system really up to date?Even if you just requested it from your Domain, and it appeared on screen, before you hit anykey on your keyboard, that data is already stale – by the time you press “update” someone orsomething else may have modified the data.Eventually the data may be up to date and consistent, it just may not be the instant you request it.So yes, the data may be stale, but is that really an issue? (hint: the answer is no)
  • #30: “We spend a great deal of effort maintaining data, maintaining integrity, maintainingconsistency, and some fool wants to duplicate this problem all over, now we have two lots of datato manage and synchronise!”The only issue that really exists is that this data could be stale or inconsistent – it may be 5seconds out of date, or 10 seconds, or maybe just 1 second – but this data may not be up to date.Well, of course it may not be up to date… but is any of the data in your system really up to date?Even if you just requested it from your Domain, and it appeared on screen, before you hit anykey on your keyboard, that data is already stale – by the time you press “update” someone orsomething else may have modified the data.Eventually the data may be up to date and consistent, it just may not be the instant you request it.So yes, the data may be stale, but is that really an issue? (hint: the answer is no)