cc-os/plugins/os-adr/eval-c/fixture/project/docs/adr/0003-route-all-job-notifica...

882 B

id date status supersedes superseded-by affected-paths affected-components
0003 2026-02-15 Accepted
taskq/notifications.py
taskq/execution.py
notifications
execution

0003 — Route all job notifications through central NotificationService

Context

Job handlers called notification code directly, causing tight coupling and inconsistent delivery.

Decision

All outbound notifications (webhooks, emails, events) routed through taskq.notifications.NotificationService. Handlers submit notification requests, not execute them directly.

Consequences

Decoupled handlers from notification details. Single place to change delivery policy or add retry logic to notifications. Slightly higher latency (service batches notifications).

Alternatives rejected

Pub/sub system rejected: overkill for current scale. Direct calls rejected: tight coupling.