Growing & Thriving in a Multi-model World • Alberto Brandolini • GOTO 2025
Summary
Alberto Brandolini's GOTO 2025 talk, "Growing & Thriving in a Multi-model World," addresses the inherent complexity in software development when relying on single, monolithic models. He illustrates how projects often start simple but inevitably grow into "holy messes" due to ignored boundaries, leading to increased dependencies, delayed refactoring, and escalating coordination costs. Brandolini advocates for a Domain-Driven Design approach, emphasizing the use of bounded contexts—models with single purposes, well-defined boundaries, and autonomy. He shares insights from a 10-year in-house project, highlighting the flat cost of evolution achieved through disciplined modeling, visual context mapping, and structured architectural discussions. The talk also explores challenges in scaling to market fit and multi-country operations, stressing the need for early, purpose-driven model splitting and the development of "uber domain experts" to navigate diverse market regulations and cultures.
Key takeaway
For software architects and engineering leaders grappling with growing system complexity, you should proactively implement Domain-Driven Design's bounded contexts and visual context mapping. This approach, focusing on purpose-driven model splitting, reduces long-term evolution costs and prevents monolithic "holy messes." Prioritize early, cheap decision-making by involving fewer people and documenting architectural discussions with ADRs. Don't fear starting small; even minor refactoring driven by pain or fear can initiate a beneficial cleanup process.
Key insights
Software complexity is best managed by embracing multiple, purpose-driven models with clear boundaries from the outset.
Principles
- Models should have a single, sharpened purpose.
- Don't change working design unless purpose changes.
- Decisions are cheaper with fewer people involved.
Method
Employ context maps for visual decision-making, framing architectural discussions with problem visualization, alternative solutions (at least three), and capturing outcomes with Architecture Decision Records (ADRs).
In practice
- Use context maps to identify new feature placement.
- Reject terms not suitable for a model's purpose.
- Explore LLMs to get plausible foreign market expertise.
Topics
- Domain-Driven Design
- Bounded Contexts
- Software Architecture
- Context Mapping
- Model Splitting
- Technical Debt
- Organizational Scaling
Best for: AI Architect, VP of Engineering/Data, Director of AI/ML, Software Engineer, CTO, Consultant
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by GOTO Conferences.