Eigenständiger BegriffBegriffKapitel I · Domäne · Baustein 17 von 18

Shared Kernel

Der gemeinsame Teil bleibt klein, sichtbar versioniert und durch Tests sowie direkte Teamabstimmung geschützt.

  1. KernelKleiner geteilter Modellteil.
  2. VerantwortungTeams stimmen Änderungen ab.
  3. TestsGemeinsamen Vertrag absichern.

Einordnung

Warum das wichtig ist

Einen gemeinsam verantworteten Modellteil klein halten und seine Änderung explizit koordinieren.

Strategisches DDD und Zusammenarbeit an fachlichen Modellen.

Shop-Beispiel · Zuordnung

Shared Kernel und getrennte Modelle

Der Shop bleibt ein modularer Monolith mit sieben fachlichen Modulen und gemeinsamer Auslieferung.

So liest du das Bild

  1. Kernel Umfang
  2. Verantwortung Zusammenarbeit
  3. Tests Kompatibilität
Shared Kernel und getrennte Modelle
KriteriumShared KernelGetrennte Modelle
BedeutungExakt gemeinsamKontextbezogen übersetzt
ÄnderungGemeinsam abstimmenUnabhängig entwickeln
KopplungHöherGeringer
Die Wahl wägt gemeinsame Semantik gegen Abstimmungsaufwand ab.

Nutzen & Grenzen

Hilft, wenn

  • Ein kleiner fachlicher Ausschnitt muss aus nachvollziehbarem Grund exakt geteilt werden.
  • Die beteiligten Teams können Änderungen gemeinsam planen, testen und ausliefern.

Grenzen

  • Gemeinsame Codebasis erzeugt Kopplung an Modell- und Releaseentscheidungen.
  • Wächst der gemeinsame Teil, werden getrennte Modelle mit expliziter Übersetzung oft verständlicher.

In der Praxis

  1. Benenne den gemeinsam genutzten fachlichen Teil und prüfe, ob beide Kontexte dieselbe Bedeutung tatsächlich benötigen. Halte diese gemeinsame Bedeutung samt Pflegeverantwortung in einer Vereinbarung für beide Teams fest.
  2. Begrenze den Kernel auf die notwendigen Typen und Regeln, versioniere Änderungen nachvollziehbar und richte gemeinsame Tests ein. Vereinbare, welche Teams vor einer Änderung zustimmen und kompatible Releases prüfen.
  3. Bewerte bei jeder Erweiterung, ob die gemeinsame Semantik weiterhin mehr Nutzen als Abstimmungsaufwand bringt. Entferne Elemente, die nur aus Bequemlichkeit geteilt werden oder in einem Kontext eine andere Bedeutung erhalten.
Ausführliche Erklärung lesen

Ein Shared Kernel ist eine bewusste Ausnahme von ansonsten getrennten Modellen. Teams legen fest, welche Typen oder Regeln dazugehören und wie Änderungen gemeinsam geprüft werden. Die gemeinsame Nutzung spart Übersetzungsaufwand, koppelt jedoch Release- und Modellentscheidungen. Größere gemeinsame Bibliotheken werden schnell zu einem versteckten Integrationsvertrag, wenn Verantwortung und Änderungstakt auseinanderlaufen.

Shared Kernel ist eine Context-Map-Beziehung. Eine Context Map ordnet die Zusammenarbeit; der Bounded Context grenzt jeweils das Modell ab.

Selbst prüfen

Teste dich in drei Stufen

  1. AblesenIm Bild nachsehen

    Was teilen die Shopmodule im Beispiel?

    Lösung mit Begründung ansehen

    Eine bestätigte Bestellreferenz mit abgestimmtem Vertrag.

  2. AnwendenAuf eine neue Lage übertragen

    Was gehört in einen Shared Kernel?

    Lösung mit Begründung ansehen

    Nur ein fachlich identischer, bewusst gemeinsamer und gepflegter Modellteil.

  3. BewertenEine Alternative abwägen

    Wann lohnt sich eine Trennung der Modelle?

    Lösung mit Begründung ansehen

    Wenn gemeinsame Änderungen mehr Abstimmung kosten als die gemeinsame Semantik Nutzen schafft.

Weiter im Lernpfad

Als Nächstes in Domänenmodellierung & DDD: Anti-Corruption Layer.