© Liashko/Shutterstock.com
Entwickler Magazin
Die Renaissance von Domain-driven Design

Microservices lieben Domain-driven Design

Das Buch „Domain-Driven Design“, das Eric Evans vor gut dreizehn Jahren publizierte, gilt schon seit jeher als herausragende Referenz für die fachlich getriebene Modellierung von IT-Systemen. Mit dem Einzug von Microservices erfährt Domain-driven Design eine Renaissance, denn die beiden Ideen lassen sich wunderbar miteinander kombinieren.

Michael Plöd


Betrachtet man diverse Publikationen rund um Domain-driven Design und Microservices, so stellt man fest, dass das Konzept des Bounded Contexts von zentraler Wichtigkeit ist. Es gibt kaum eine Veröffentlichung zur Modellierung von Microservices, die dieses Konzept nicht erwähnt. Allerdings greift diese Konstellation zu kurz: Es gibt weitaus mehr über Domain-driven Design und Microservices zu berichten als den Bounded Context. Betrachtet man auf der anderen Seite das Thema Domain-driven Design, so ist festzustellen, dass das Thema weit über die hinlänglich bekannten Entitäten, Value Objects und Aggregate hinausgeht.

Im Kontext von Microservices hilft uns Domain-driven Design in vier Bereichen: Das strategische Design hilft bei der Strukturierung von Microservices-Landschaften und dem Beschreiben von Liefer- und Leistungsbeziehungen zwischen einzelnen Microservices. Der Bereich der internen Bausteine hält Lösungsvorschläge für den internen Entwurf einzelner Microservices bereit. Die Ideen und Patterns des Domain-driven-Design-Kapitels zum Thema große Strukturen helfen uns bei der Evolution von schnell wachsenden Microservices-Landschaften. Abschließend liefert der Bereich der Destillation Anregungen und Ideen für das Refactoring bestehender Anwendungen in Richtung von Microservices.

Strategisches Design mit Bounded Context

Zentrale Idee des strategischen Designs (Strategic Design) ist der Bounded Context. Dieser ist eine gute Hilfestellung für das Finden einer passenden Granularität für Microservices. Jede anspruchsvollere Fachdomäne wird mit Sicherheit aus mehreren Bounded Contexts bestehen. Ein Bounded Context ist rein formell als Gültigkeitsgrenze für ein fachliches Modell zu betrachten. Diese auf den ersten Blick abstrakt wirkende Definition ist recht leicht zu verstehen, wenn man sie anhand eines konkreten Beispiels betrachtet. Angenommen, wir wollen eine neue Anwendungslandschaft für die Organisation einer Konferenz wie der W-JAX entwickeln. Eine solche Fachlichkeit hat vereinfacht betrachtet beispielsweise drei Domänen:

die Registrierung von Anmeldungenden Druck der Konferenzpässe für die Besuchereine Kapazitätsplanung für Essen und Sessions

Diese Domänen lassen sich als einzelne Bounded Contexts betrachten. Das Modell des Besuchers kann innerhalb dieser Domänen unterschiedlich behandelt und dargestellt werden. So kann ein Besucher im Bounded Context der Registrierung mit den Attributen Name, Vorname, Firma, Anschrift, Zahlungsweise und angemeldete Track...

Entwickler Magazin
Die Renaissance von Domain-driven Design

Microservices lieben Domain-driven Design

Das Buch „Domain-Driven Design“, das Eric Evans vor gut dreizehn Jahren publizierte, gilt schon seit jeher als herausragende Referenz für die fachlich getriebene Modellierung von IT-Systemen. Mit dem Einzug von Microservices erfährt Domain-driven Design eine Renaissance, denn die beiden Ideen lassen sich wunderbar miteinander kombinieren.

Michael Plöd


Betrachtet man diverse Publikationen rund um Domain-driven Design und Microservices, so stellt man fest, dass das Konzept des Bounded Contexts von zentraler Wichtigkeit ist. Es gibt kaum eine Veröffentlichung zur Modellierung von Microservices, die dieses Konzept nicht erwähnt. Allerdings greift diese Konstellation zu kurz: Es gibt weitaus mehr über Domain-driven Design und Microservices zu berichten als den Bounded Context. Betrachtet man auf der anderen Seite das Thema Domain-driven Design, so ist festzustellen, dass das Thema weit über die hinlänglich bekannten Entitäten, Value Objects und Aggregate hinausgeht.

Im Kontext von Microservices hilft uns Domain-driven Design in vier Bereichen: Das strategische Design hilft bei der Strukturierung von Microservices-Landschaften und dem Beschreiben von Liefer- und Leistungsbeziehungen zwischen einzelnen Microservices. Der Bereich der internen Bausteine hält Lösungsvorschläge für den internen Entwurf einzelner Microservices bereit. Die Ideen und Patterns des Domain-driven-Design-Kapitels zum Thema große Strukturen helfen uns bei der Evolution von schnell wachsenden Microservices-Landschaften. Abschließend liefert der Bereich der Destillation Anregungen und Ideen für das Refactoring bestehender Anwendungen in Richtung von Microservices.

Strategisches Design mit Bounded Context

Zentrale Idee des strategischen Designs (Strategic Design) ist der Bounded Context. Dieser ist eine gute Hilfestellung für das Finden einer passenden Granularität für Microservices. Jede anspruchsvollere Fachdomäne wird mit Sicherheit aus mehreren Bounded Contexts bestehen. Ein Bounded Context ist rein formell als Gültigkeitsgrenze für ein fachliches Modell zu betrachten. Diese auf den ersten Blick abstrakt wirkende Definition ist recht leicht zu verstehen, wenn man sie anhand eines konkreten Beispiels betrachtet. Angenommen, wir wollen eine neue Anwendungslandschaft für die Organisation einer Konferenz wie der W-JAX entwickeln. Eine solche Fachlichkeit hat vereinfacht betrachtet beispielsweise drei Domänen:

die Registrierung von Anmeldungenden Druck der Konferenzpässe für die Besuchereine Kapazitätsplanung für Essen und Sessions

Diese Domänen lassen sich als einzelne Bounded Contexts betrachten. Das Modell des Besuchers kann innerhalb dieser Domänen unterschiedlich behandelt und dargestellt werden. So kann ein Besucher im Bounded Context der Registrierung mit den Attributen Name, Vorname, Firma, Anschrift, Zahlungsweise und angemeldete Track...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang