Domain-Driven Design for Software Architecture

Are you involved in software design and architecture? Do you want to ensure that they’re not only resilient and anti-fragile but also aligned with user and business needs? Are you keen to bridge the gap between software teams and stakeholders, fostering a collaborative environment that directly influences software design and architecture? If you’re looking to design software for complex problems, join our 2-day workshop titled “Domain-Driven Design for Software Architecture.” We’ll cover all these topics and more.

This workshop is designed with software people in mind, namely ones involved in software design and architecture. Titles vary, but can fall under one of those::


  • Software Developers & Engineers with 5 years of experience
  • Tech Leads
  • Software, Solution, Enterprise or Domain Architects
  • Engineering Managers


Kenny Baas-Schwegler

João Rosa trainer

João Rosa

About the


The workshop delves deep into the foundational knowledge of Domain-Driven Design, progressing to advanced topics like sociotechnical and anti-fragile systems.
Instead of just theoretical understanding, the emphasis is on hands-on exercises in varied environments. The sessions are grounded in diverse collaborative modelling techniques, offering unique insights. Participants will explore the nuances and patterns of Domain-Driven Design, gaining a critical understanding of the trade-offs and balancing essential complexities in and among software systems.

In this 2-day workshop, you’ll learn how you and your peers can design anti-fragile systems. It’s more than just technical expertise; it’s about nurturing a creative space where those building the software actively shape team organisation and architectural decisions. The approach is holistic, merging human dynamics with technical precision, empowering teams to design and architect their own systems.

What you will learn

  • Foundational Principles of Domain-Driven Design: Start the journey through the fundamental concepts of Domain-Driven Design, setting the critical knowledge base necessary for modern software design.
  • Strategic Domain-Driven Design Patterns: Engage in hands-on exploration of Context Mapping by using the strategic patterns that are critical for a evolvable software architecture.  Immerse yourself in the ‘Bounded Context’ pattern, crucial for navigating complexity and refining domain models.
  • Sociotechnical System Design: Grasp the essential role of sociotechnical system design within effective DDD. Learn strategies to synchronise software architecture with organisational structures, fostering mutual improvement and cohesion.
    • Collaborative Modelling Techniques: Use different collaborative modelling techniques, including EventStorming, Domain Message Flow Modelling, and Wardley Mapping, essential for understanding the landscape and the domains, and  to have an effective team collaboration.
    • Designing Antifragile Systems: Receive an introduction to designing antifragile bounded contexts using residuality theory, and learn the basics of how Team Topology can help organise teams around these bounded contexts.
    • Empowering Teams in Software Design and Architecture: Create an environment where team members take an active role and assume responsibility for the design and architecture of their software, thereby boosting commitment and sense of ownership.

    the workshop

    To maximise your experience in this workshop, a foundational understanding of Domain-Driven Design is essential. We offer an optional brief introduction to Domain-Driven Design before the workshop begins, followed by a quick recap of the foundational principles at the start. This preparatory material is crafted to enhance your understanding and ensure you gain the utmost value from the workshop.


    For those eager to advance their preparation, we suggest reading “Learning Domain-Driven Design” by Vladik Khononov. It provides clear, insightful guidance for Domain-Driven Design newcomers. Additionally, Eric Evans’ classic “Domain-Driven Design: Tackling Complexity in the Heart of Software” is a valuable resource for deepening your knowledge and is highly beneficial for workshop attendees.

    Our workshop is designed to be interactive, immersing you in hands-on learning. For online sessions, we utilize Miro, a digital whiteboard platform, for collaborative activities. If you’re not familiar with Miro, we recommend the self-paced Miro Academy: Miro Participant Onboarding Course. This brief course will give you the essential skills to actively engage in the workshop.