Vlad K.: DDD for architecting modular systems
Schulung & Kurs

DOMAIN-DRIVEN DESIGN FOR ARCHITECTING MODULAR SYSTEMS

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.

Kurse für Teams:

Gerne führen wir zugeschnittene Kurse für euer Team durch - vor Ort, remote oder in unseren Kursräumen.

In-House Kurs Anfragen

 

Kursinhalt:


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.


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

Ob wir es Schulung, Kurs, Workshop, Seminar oder Training nennen, wir möchten Teilnehmer/innen an ihrem Punkt abholen und mit dem nötigen praktischen Wissen ausstatten, damit sie die Technologie nach der Schulung direkt anwenden und eigenständig vertiefen können.

Ziel:

Upon completion of the training, participants are expected to know the principles and patterns of domain-driven design, providing them with essential skills for architecting modular software systems.


Form:

The course is delivered in a mix of teaching methods, including lectures, quizzes, discussions, and hands-on exercises, all aimed at reinforcing learning outcomes and encouraging increased participation.


Zielgruppe:

This course is ideal for IT professionals, software architects, and developers aiming to enhance their skills in architecting modular software systems.


Voraussetzungen:

A basic understanding of software development and coding language is required.


Vorbereitung:

All participants will receive detailed preparation instructions prior to the start of the course. This may include specific software or tools set up on their personal laptop, readiness to participate in interactive activities, or any necessary pre-reading. Feedback and clarification will also be provided based on individual participant needs through a pre-course questionnaire.

In-House Kurs anfragen:

In-House Kurs Anfragen

Trage dich in die Warteliste ein für weitere öffentliche Kurs-Termine. Sobald wir genügend Personen auf der Warteliste haben, klären wir einen möglichst für alle passenden Termin ab und schalten einen neuen Termin auf. Falls du direkt mit zwei Kollegen oder Kolleginnen teilnehmen möchtest, können wir sogar direkt einen öffentlichen Kurs für euch planen.

Warteliste

(Falls ihr bereits mehr 3 Teilnehmer:innen oder mehr habt, klären wir mit euch direkt euren Wunschtermin ab und schreiben den Kurs aus.)

Share by: