Darstellung
ADR-0002 – Gemeinsamer Domain-Layer (@work7/domain) für API + Agent
Ausführliche Fassung:
../architecture/work7-agent-api-consolidation.md.
Status
Accepted (2026-06-10).
Kontext
Work7 hatte drei schreibende Pfade für dieselben Geschäftsregeln: Next.js-API-Routen, den Agent-Service und den Work7-Teil eines zentralen MCP-Servers. Folge: doppelte SQL-/Business-Logik, fehlende Realtime-Side-Effects bei Agent-Writes und ein unsauberes Header-Trust-Modell über die MCP-Grenze.
Entscheidung
- Konsolidierung auf zwei Laufzeitkomponenten: Next.js (Web/API/Realtime/Webhooks) und Agent-Service (WhatsApp-Flows).
- Gemeinsame Business-Logik in
@work7/domain(packages/domain/): Guards, Tool-Registry, Write-Side-Effects. API und Agent rufen sie in-process auf. - Der zentrale Work7-MCP-Server ist deaktiviert; verbliebene sessionlose Webhook-Ausnahmen werden über
state/clientState/Channel-Token/HMAC validiert. - Domain-Events laufen über Redis Pub/Sub in die Realtime-/Notification-Bridge.
Konsequenzen
- ➕ Eine Business-Logik, konsistente Guards/Tenancy; Agent-Writes triggern dieselben Notifications/Realtime-Updates wie API-Writes; keine Work7-spezifische Netzgrenze.
- ➖ App und Agent releasen gemeinsam; der historische MCP-Pfad bleibt nur als Archiv-/ Vertragsreferenz.
Schlüssel-Bausteine (Ist-Stand)
listDomainTools / getDomainTool / executeDomainTool, DomainContext + requireRole / requireTenantScope, publishDomainEvent, withTransaction. Konsumenten: API-Routen (requireSession → Domain) und @work7/agent.