We did an Overview and Tactics, now it’s time to look into the inter-personal conversations that make Domain-driven design so powerful.
Call for feedback - How are you liking the chat participation on Linkedin? Is the Event for each week easy to find? Do you get value from the recaps?
👇 Sign up on the LinkedIn event to have it easily pop into your calendar. It’s recorded, and also available on YouTube.
Agenda for the Live Stream
How do you know you understand the product domain?
How to talk to your product experts?
Event storming & modeling tips
Reviewing an event storming video
If you missed it, here’s last week’s recap
Context Mapping Overview
3 Types of relationships between Teams / Contexts:
Mutually Dependent
Upstream/Downstream
Free
9 Forms of dependencies:
Open-host service
Conformist
Anticorruption layer
Shared kernel
Partnership
Customer / Supplier development
Published Language
Separate Ways
Big ball of Mud 💩
Check out the open source ddd-crew for a detailed infographic.
Insights from the episode
💡 Context mapping is a crucial step in project development. These conversations and diagrams help your team understand the boundaries and relationships between different bounded contexts.
📊 Take advantage of Context Mapping for Clean Architecture. Set boundaries on language and map how contexts and CA layers relate to each other, enabling a clear understanding of relationships between different domains and microservices.
⏰ The default trajectory for large software projects is creating a Big Ball of Mud. The only way to avoid is it to plan a Context Dependency Map or equivalent.
💡 The concept of mutually dependent systems in context mapping allows for active collaboration between different teams, ensuring that changes are synchronized and elements are shared effectively.
🏢 An anti-corruption layer (ACL) in architecture allows for abstracting away communication with external systems, ensuring that changes in those systems don't impact the internal communication of the system being developed.
🌐 Context mapping allows different agents to communicate and understand each other's APIs and specifications, enabling seamless integration and collaboration.
💡 The use of an anti-corruption layer in clean architecture allows for the evolution and shaping of a new domain layer while removing unnecessary technical debt and coupling with the old infrastructure.
💡 Context mapping is crucial in domain-centric architecture with multiple teams working on different contexts, as it helps establish effective communication and avoid potential issues that may arise from either excessive or insufficient communication.
❓ Chat Question: Difference between Anti-corruption Layer and Separate Ways?
Denis: The difference is in the intent—an ACL supports an upgrade in the relationships to manage technical debt and improve the consuming-side’s productivity. Separate Ways on the other hand focuses on decoupling from the legacy node completely.