Skip to content

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.

Verwandte Notes

Work7 · Software für Handwerksbetriebe