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

Viewers also liked

Reading user’s mind from their eye’s
Reading user’s mind from  their eye’sReading user’s mind from  their eye’s
Reading user’s mind from their eye’sArsha Raman
 
Busy partner connect 2016
Busy partner connect 2016Busy partner connect 2016
Busy partner connect 2016AT 9
 
A research report on the establishment of private independent blood banks in ...
A research report on the establishment of private independent blood banks in ...A research report on the establishment of private independent blood banks in ...
A research report on the establishment of private independent blood banks in ...Rijo Stephen Cletus
 
AD-IN-ONE SUCCESS STORY GREY GROUP PRAGUE.PDF
AD-IN-ONE SUCCESS STORY GREY GROUP PRAGUE.PDFAD-IN-ONE SUCCESS STORY GREY GROUP PRAGUE.PDF
AD-IN-ONE SUCCESS STORY GREY GROUP PRAGUE.PDFLibor Cerny
 
Architectyral walkthrough
Architectyral walkthroughArchitectyral walkthrough
Architectyral walkthroughMishti Priyanca
 
Solutions Catalog # 3 by ISIS Papyrus Software
Solutions Catalog # 3 by ISIS Papyrus SoftwareSolutions Catalog # 3 by ISIS Papyrus Software
Solutions Catalog # 3 by ISIS Papyrus SoftwareISIS Papyrus Software
 
Performance testing methodologies
Performance testing methodologiesPerformance testing methodologies
Performance testing methodologiesDhanunjay Rasamala
 
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCEBE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCEVicky Aryan
 

Viewers also liked (13)

Reading user’s mind from their eye’s
Reading user’s mind from  their eye’sReading user’s mind from  their eye’s
Reading user’s mind from their eye’s
 
Busy partner connect 2016
Busy partner connect 2016Busy partner connect 2016
Busy partner connect 2016
 
A research report on the establishment of private independent blood banks in ...
A research report on the establishment of private independent blood banks in ...A research report on the establishment of private independent blood banks in ...
A research report on the establishment of private independent blood banks in ...
 
School
SchoolSchool
School
 
AD-IN-ONE SUCCESS STORY GREY GROUP PRAGUE.PDF
AD-IN-ONE SUCCESS STORY GREY GROUP PRAGUE.PDFAD-IN-ONE SUCCESS STORY GREY GROUP PRAGUE.PDF
AD-IN-ONE SUCCESS STORY GREY GROUP PRAGUE.PDF
 
Test
TestTest
Test
 
CS1308 - 02/08/10
CS1308 - 02/08/10CS1308 - 02/08/10
CS1308 - 02/08/10
 
Architectyral walkthrough
Architectyral walkthroughArchitectyral walkthrough
Architectyral walkthrough
 
Exploring Mobisy
Exploring MobisyExploring Mobisy
Exploring Mobisy
 
Solutions Catalog # 3 by ISIS Papyrus Software
Solutions Catalog # 3 by ISIS Papyrus SoftwareSolutions Catalog # 3 by ISIS Papyrus Software
Solutions Catalog # 3 by ISIS Papyrus Software
 
Performance testing methodologies
Performance testing methodologiesPerformance testing methodologies
Performance testing methodologies
 
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCEBE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
BE IN ELECTRONICS AND COMMUNICATION WITH 1 YEAR EXPERIENCE
 
Co
CoCo
Co
 

Similar to Teams, Apps, API and Data Boundaries

Domain Driven Design - Distillation - Chapter 15
Domain Driven Design - Distillation - Chapter 15Domain Driven Design - Distillation - Chapter 15
Domain Driven Design - Distillation - Chapter 15Mark Windholtz
 
Domain Driven Design Ruby Ways - JURNAL 05/10/2017
Domain Driven Design Ruby Ways -  JURNAL 05/10/2017Domain Driven Design Ruby Ways -  JURNAL 05/10/2017
Domain Driven Design Ruby Ways - JURNAL 05/10/2017Jonathan Wylliem
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsMark Windholtz
 
E governance and enteerprise architecture
E governance and enteerprise architectureE governance and enteerprise architecture
E governance and enteerprise architectureKumar
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)Tom Kocjan
 
A Case for Outside-In Design
A Case for Outside-In DesignA Case for Outside-In Design
A Case for Outside-In DesignSandro Mancuso
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)IT Arena
 
Enterprise architecture: A Problamatic Approach
Enterprise architecture: A Problamatic ApproachEnterprise architecture: A Problamatic Approach
Enterprise architecture: A Problamatic ApproachYasir Karam
 
Content Strategy From the Outside In
Content Strategy From the Outside InContent Strategy From the Outside In
Content Strategy From the Outside InChip Gettinger
 
Architecture Principles CodeStock
Architecture Principles CodeStock Architecture Principles CodeStock
Architecture Principles CodeStock Steve Barbour
 
Schibsted Spain - Day 1 - DDD Course
Schibsted Spain - Day 1 - DDD CourseSchibsted Spain - Day 1 - DDD Course
Schibsted Spain - Day 1 - DDD CourseKevin Mas Ruiz
 
Aligning Bounded Contexts with Subdomains in Legacy Code - NDC Oslo 2021
Aligning Bounded Contexts with Subdomains in Legacy Code - NDC Oslo 2021Aligning Bounded Contexts with Subdomains in Legacy Code - NDC Oslo 2021
Aligning Bounded Contexts with Subdomains in Legacy Code - NDC Oslo 2021Mufrid Krilic
 
DITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project PlanDITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project PlanSuite Solutions
 
Agile Data Architecture
Agile Data ArchitectureAgile Data Architecture
Agile Data ArchitectureCprime
 
Connected development data
Connected development dataConnected development data
Connected development dataRob Worthington
 
Segue to design patterns
Segue to design patternsSegue to design patterns
Segue to design patternsRahul Singh
 

Similar to Teams, Apps, API and Data Boundaries (20)

Domain Driven Design - Distillation - Chapter 15
Domain Driven Design - Distillation - Chapter 15Domain Driven Design - Distillation - Chapter 15
Domain Driven Design - Distillation - Chapter 15
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain Driven Design Ruby Ways - JURNAL 05/10/2017
Domain Driven Design Ruby Ways -  JURNAL 05/10/2017Domain Driven Design Ruby Ways -  JURNAL 05/10/2017
Domain Driven Design Ruby Ways - JURNAL 05/10/2017
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
E governance and enteerprise architecture
E governance and enteerprise architectureE governance and enteerprise architecture
E governance and enteerprise architecture
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
A Case for Outside-In Design
A Case for Outside-In DesignA Case for Outside-In Design
A Case for Outside-In Design
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
 
Enterprise architecture: A Problamatic Approach
Enterprise architecture: A Problamatic ApproachEnterprise architecture: A Problamatic Approach
Enterprise architecture: A Problamatic Approach
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
 
Content Strategy From the Outside In
Content Strategy From the Outside InContent Strategy From the Outside In
Content Strategy From the Outside In
 
Architecture Principles CodeStock
Architecture Principles CodeStock Architecture Principles CodeStock
Architecture Principles CodeStock
 
Schibsted Spain - Day 1 - DDD Course
Schibsted Spain - Day 1 - DDD CourseSchibsted Spain - Day 1 - DDD Course
Schibsted Spain - Day 1 - DDD Course
 
DOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGNDOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGN
 
Aligning Bounded Contexts with Subdomains in Legacy Code - NDC Oslo 2021
Aligning Bounded Contexts with Subdomains in Legacy Code - NDC Oslo 2021Aligning Bounded Contexts with Subdomains in Legacy Code - NDC Oslo 2021
Aligning Bounded Contexts with Subdomains in Legacy Code - NDC Oslo 2021
 
DITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project PlanDITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project Plan
 
Agile Data Architecture
Agile Data ArchitectureAgile Data Architecture
Agile Data Architecture
 
Connected development data
Connected development dataConnected development data
Connected development data
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Segue to design patterns
Segue to design patternsSegue to design patterns
Segue to design patterns
 

Teams, Apps, API and Data Boundaries

Editor's Notes

  1. 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)
  2. Metaphor:Cells can exist because their membranes define what is in and determine what can pass!
  3. Don’t get distracted or confused by issues outside
  4. BOUNDED CONTEXTS gives team members a clear and shared understanding of what has to be consistent and what can develop independently.
  5. 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)
  6. People on other teams won’t be aware of the CONTEXT bounds and will unknowingly make changes that blur the edges or complicate interconnections.
  7. Overlap between project management and software design
  8. MAP THE TERRAIN
  9. 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
  10. “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)
  11. “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)