conference logo

Playlist "FrOSCon 2018"

Bessere Microservices mit Domain Driven Design

Christian Iwanzik

Mit Domain Driven Design lässt sich das Micro in Microservices besser eingrenzen. Mit Bounded Context und Self Contained Systems erhält man besser geschnittene und verständlichere Komponenten.

Domain Driven Design ist eine Entwicklungs- und Modellierungsstrategie, welche von Eric Evans bereits vor einigen Jahren postuliert wurde. Der Kern von Domain Driven Design bildet dabei die eigentliche Fachdomäne als Herz und Mittelpunkt der zu erstellenden Software.

Entwickler und Fachexperten entwickeln in enger Kommunikation zusammen ein Vokabular, die so genannte „Ubiquitous Language“ mit dessen Hilfe sie wiederum ein gemeinsames Modell und Verständnis der Fachdomäne entwickeln. Dieses gemeinsam erstellte Modell zieht sich in der weiteren Entwicklung wie ein roter Faden durch alle Prozesse, sei es auf technischer wie fachlicher Ebene, sodass alle beteiligten zu jeder Zeit ein gutes Verständnis der Domäne haben.
Innerhalb dieses Modells lassen wiederum mit allen beteiligten einzelne „Bounded Contextes“ identifizieren, welche eine abgeschlossene fachliche Domainlogik innerhalb des Modells identifizieren und untereinander in Relation bringen lassen.

Auf technischer Ebene lässt sich nun mit „Bounded Contextes“ eine gute Brücke in Richtung der Microservicearchitektur schlagen. Zusammen mit diesen beiden Strategien erhält man am Ende fachlich sauber geschnittene self contained Systems, die einer Terminologie folgen, welche auch von Domainexperten, Stakeholdern oder zumindest vom Product Owner zusammen mit Entwicklern verstanden, getragen und auch erweitert wird.

Der Talk erläutert die Grundbegriffe des Domain Driven Designs und das theoretische Konzept dahinter und schlägt im Anschluss mit Domainkontexten eine Brücke zur Softwarearchitektur. Anhand eines fachlichen Beispiels