Kurs · Schulung · Workshop

Vlad K.: DDD for architecting modular systems

Meistere Domain-Driven Design in vier Modulen: von strategischem Design und Ubiquitous Language bis zu Microservices und Event-Driven Architecture für modulare Softwaresysteme.

Erste Durchführungen: 5. & 6. Dezember ! Ausgebucht ! Zweite Durchführungen: 7. & 8. Dezember - Noch Plätze Frei “Domain-Driven Design for Architecting Modular Systems" is a comprehensive training focusing on the design and implementation of modular software systems. Divided into four interactive modules — strategic design, business logic modeling patterns and strategies, architectural and integration patterns, and balanced coupling — it covers in detail the intricacies of identifying subdomains, creating ubiquitous language, implementing bullet-proof business logic, and architecting flexible systems. The balanced coupling module focuses on the underlying design principles at the heart of popular software patterns, including microservices and event-driven architecture. Furthermore, the module demonstrates a simple design heuristic shared among them. The training, enriched with quizzes, discussions, and hands-on exercises, enables participants to master the principles and patterns of domain-driven design, providing them with the essential skills for architecting modular software systems.

Stimmen unserer Teilnehmer:innen

Diese Kunden haben Kurse im gleichen Themen-Cluster bei uns gebucht.Mehr Kunden →

Inhalt

The training includes four modules: strategic design, business logic modeling patterns and strategies, architectural and integration patterns, and balanced coupling. A module’s length is, on average, 4 hours. However, the actual length can be higher depending on the audience’s participation. All modules include interactive elements, such as quizzes, discussions, and hands-on exercises.

Strategic Design

Subdomains: Identifying boundaries and implications of the different types of subdomains Subdomains vs. Business Capabilities: Explore the commonalities and differences of the two models, applicability, and how to use business capabilities to discover subdomains.

Ubiquitous Language: Discovering and modeling domain knowledge through cultivating a shared understanding between domain experts and IT. Navigating uncharted waters: building ubiquitous languages for novel solutions in which both problem and solution domains are uncertain. Bounded Contexts: Effectively solving problems using multiple, task-oriented models. Explore the implications of bounded contexts on both technical and socio-technical design decisions

Tactical Design: Business Logic Modeling Patterns and Strategies

Business Logic: Definition, goals, and importance of a system’s business logic. Transaction Script: Implementing bullet-proof business logic that ensures correctness and consistency of the data under all circumstances. Discussed topics include concurrency management, idempotency, reliable messaging, commonly overlooked business logic implementation issues, and how to avoid them. Active Record: Extending the transaction script pattern to deal with complex data structures. Domain Model: How to tackle complex business logic with domain-driven design’s aggregates, value objects, domain events, and domain services. Event-Sourced Domain Model: Extending the domain model pattern to include the dimension of time.

Tactical Design: Architectural and Integration Patterns

Patterns of architecting individual components / services: layered architecture, ports & adapters, and CQRS. Integration patterns: Orchestrating the work of related components through designing process managers, sagas, and transactional outboxes.

Balanced Coupling

The majority prevalent software design patterns, architectures, and techniques — including domain-driven design — share the same goal: increasing the flexibility of a system by managing the coupling of its components. This module shifts the focus from specific techniques to the underlying design principles at their core. The attendees will learn what software coupling is and how it manifests itself in three dimensions: integration strength, distance, and volatility. Later, the three dimensions will be used to formulate a design heuristic for architecting modular software systems: balanced coupling. Ultimately, the balanced coupling model will be used to reinforce core principles and patterns of domain-driven design, as well as guidance for designing microservices and event-driven architecture based systems.

Der effektive Kursinhalt kann, abhängig von Trainer, Durchführung, Dauer und Konstellation der Teilnehmer:innen, von obigen Angaben abweichen.

In-House Kurs anfragen

Mit dem Absenden akzeptierst du unsere Datenschutzbestimmungen.

Öffentlichen Termin anfragen

Kein passender öffentlicher Termin dabei? Trag dich unverbindlich ein – sobald genug Interesse besteht, planen wir einen neuen öffentlichen Termin und informieren dich zuerst.

Anzahl Teilnehmende (ungefähr)

Mehr als 3 Teilnehmende? Am besten direkt einen Wunschtermin als In-House Kurs anfragen.

Mit dem Absenden akzeptierst du unsere Datenschutzbestimmungen.

Mehr über Domain-Driven Design

Domain-Driven Design (DDD) ist ein Softwareentwicklungsansatz, der die enge Zusammenarbeit zwischen Fachexperten und Entwicklern in den Mittelpunkt stellt, um komplexe Geschäftsdomänen in wartbare Software zu übersetzen. Vlad Khononov ist Autor des Buches "Learning Domain-Driven Design" und eines der führenden Gesichter der DDD-Community. Sein Ansatz verbindet strategisches und taktisches Design mit modernen Architekturkonzepten wie Microservices und Event-Driven Architecture.

Weitere Ressourcen:

History

Domain-Driven Design wurde 2003 von Eric Evans mit dem Buch "Domain-Driven Design: Tackling Complexity in the Heart of Software" begründet. Evans beschrieb Muster wie Ubiquitous Language, Bounded Contexts und Aggregate, die helfen, komplexe Domänenwissen in Software-Architektur zu übersetzen. Das Buch gilt bis heute als Standardwerk und Pflichtlektüre für Software-Architekten.

Vlad Khononov modernisierte diese Grundlagen mit seinem 2021 erschienenen Buch "Learning Domain-Driven Design" und machte DDD einem breiteren Publikum zugänglich. Sein Folgewerk "Balancing Coupling in Software Design" (2024) vertieft die Designprinzipien, die modernen Architekturentscheidungen zugrunde liegen – von Microservices bis hin zu Event-Driven Architectures.