Anti-Corruption Layer
Ein Anti-Corruption Layer (ACL) ist eine Übersetzungsschicht zwischen der eigenen Domäne und einem externen System — einem Backend, einem Drittanbieter, einem anderen Bounded Context.
Warum er nötig ist
Abschnitt betitelt „Warum er nötig ist“Externe Systeme sprechen nicht die Sprache der eigenen Domäne. Sie haben ihre eigenen Feldnamen, ihre eigene Semantik, ihre eigenen Konventionen. Wer externe Modelle direkt in die eigene Domäne lässt, verliert die Kontrolle über die eigene Sprache.
External API → ACL → Eigene DomäneTaskDto Mapper Taskuser_id (string) → assigneeId (UserId)created_at (ISO) → createdAt (Date)null (kein Nutzer) → Unassigned (expliziter Typ)Implementierung
Abschnitt betitelt „Implementierung“export class TaskMapper { static toDomain(dto: TaskDto): Task { return { id: new TaskId(dto.task_id), title: dto.title, assignee: dto.assigned_to_user_id ? Assignee.of(dto.assigned_to_user_id) : Assignee.unassigned(), createdAt: new Date(dto.created_at), }; }}Was der ACL schützt
Abschnitt betitelt „Was der ACL schützt“- Domänensprache: Eigene Begriffe bleiben sauber, externe Begriffe dringen nicht ein
- Typsicherheit: Externe
string-IDs werden zu typisierten Value Objects - Stabilität: Ändert sich die externe API, ändert sich nur der Mapper — nicht die Domäne
Im Micro-Frontend-Kontext
Abschnitt betitelt „Im Micro-Frontend-Kontext“Jedes Remote hat seinen eigenen ACL zur Shell und zu anderen Remotes. Cross-Remote-Kommunikation geht nie direkt — immer über Übersetzungsschichten.