ADR-0031: Background Jobs И Schedulers
Статус
Принято.
Контекст
Reconciliation, projections, provider sync, cleanup и consumers должны быть надежными, идемпотентными и наблюдаемыми. Если business logic живет внутри hosted services, ее трудно тестировать и повторно запускать.
Решение
Background plumbing только запускает MediatR command/query. Jobs регистрируются в job registry, используют idempotency, distributed locks, checkpoints, metrics и runbooks.
Последствия
- Hosted services остаются тонкими.
- Business decision тестируется как обычный handler/domain logic.
- Manual replay требует permission и audit.
- Projection jobs имеют freshness SLA и checkpoint.