Zum Inhalt springen

Resource Boundary

Eine Resource Boundary definiert, was eine Domäne besitzt und für was sie nur eine Referenz hält. Ohne klare Grenzen entstehen implizite Abhängigkeiten, die Deployments koppeln und Verantwortlichkeiten verwischen.

interface Task {
id: string;
title: string;
assignedUser: User; // ← vollständiges User-Objekt in der Tasks-Domäne
}

Die Tasks-Domäne kennt jetzt alle Felder eines Users. Ändert sich das User-Model, ändert sich auch der Task-Code — auch wenn Tasks gar nicht von der Änderung betroffen sind.

interface Task {
id: string;
title: string;
assignedUserId: string; // ← nur die Referenz
}
interface TaskViewModel {
id: string;
title: string;
assigneeDisplayName: string; // ← aufgelöst im Adapter-Layer
}

Die Tasks-Domäne besitzt den Task. Sie besitzt nicht den User. Sie hat nur seine ID.

In einem Micro-Frontend-Setup bedeutet das: jedes Remote kennt nur seine eigenen vollständigen Objekte. Referenzen auf andere Bounded Contexts sind IDs — aufgelöst im Shell oder in einer dedizierten Aggregations-Schicht.

Sobald mehrere Teams an verschiedenen Domänen arbeiten und unabhängig deployen sollen. Starke Kopplung auf Typenebene erzeugt Deployment-Kopplung.