Pragmatic Architecture - Domain-Driven Design meets Residuality Theory

Workshop Summary

There are thousands of ways to solve a problem, but only a handful are the most efficient, and even fewer sustain long-term resilience. Often, software architectures become overly complex due to inefficient design approaches, which can hinder both development and maintenance.

This workshop introduces powerful tools to develop tangible, efficient, and resilient architectures. Tactical Domain-Driven Design ensures efficiency by focusing on the core principles of DDD, while Residuality Theory helps to build systems that are not only resilient but antifragile. Through hands-on exercises, participants will learn to apply these concepts to create architectures that can withstand and thrive under change.

This is a collaborative, hands-on workshop where you will engage in practical exercises, discussions, and case studies to deepen your understanding.

For Whom?

This workshop is tailored for software architects and engineers looking to refine their architectural skills. While it targets professionals with some experience in software engineering, it is accessible to anyone interested in improving their approach to architecture design. You should consider
attending if you are in a role such as:

  • Software Architect
  • Software Engineer
  • Technical Lead
  • Engineering Manager

Learning Objectives

  • Understand what makes a "good" architecture and how to evaluate its effectiveness
  • Learn to identify and gather the necessary inputs before starting architecture design
  • Compare and contrast state-driven and event-driven approaches in architecture design
  • Explore the Tactical DDD concept of "Aggregate" to ensure data consistency and business invariants
  • Identify Aggregate candidates that reflect the domain model
  • Understand different integration patterns and their impact on coupling strength
  • Dive into Residuality Theory to design resilient and antifragile systems

Agenda
Day 1

  • What is a "good" architecture? Explore the properties of architecture, determine their importance, and learn methods to quantify and qualify them.
  • Before "architecture": Identify the necessary inputs for designing software architecture and their sources.
  • Event is everything: Engage in detailed modelling exercises, comparing "state-driven" and "event-driven" approaches in designing architectures, and formulate heuristics to help you choose between them.
  • Ensuring data consistency: Discover the power of Tactical DDD's crucial concept—"Aggregate"—and learn how framing solutions with this concept ensures data consistency and satisfies business invariants.

Day 2

  • Finding Aggregate candidates: Identifying Aggregates that accurately reflect the domain model is crucial for high-quality architecture.
    Participate in an extensive practical exercise for defining aggregate roots using Event Storming.
  • Integration patterns and coupling: Learn about different types of integration patterns and their impact on the tightness of coupling. Engage in
    hands-on exercises to find the right pattern and coupling strength.

Day 3

  • Introduction to Residuality Theory: Explore how Residuality Theory forms the foundation for designing software systems with resilient and antifragile behavior.
  • Graduation Exercise: Work in groups to design a pragmatic and resilient software architecture, applying all the concepts learned throughout the workshop.

Format
Offline or Online, 3 days, 18 hours total.

Requirements

  • No prior knowledge of software architecture is required.
  • Experience as a software engineer is required.
  • A quiet room that allows participants to fully focus.
  • Active participation is required, as participants should be willing to work in small groups with other participants and contribute to activities.

Maximum group size: 20.

Do you want to get updates about campaigns, discounts and events?