Konteks
Base sudah punya pola outbox (awcms_mini_sync_outbox, awcms_mini_object_sync_queue), HMAC sync + anti-replay, idempotency ledger, correlation ID, dan circuit breaker DB. Namun belum ada dispatcher pengirim nyata untuk objek/pesan, dan ketahanan integrasi ke provider luar (R2, WA, email, AI, pajak) belum dikeraskan menyeluruh sesuai ADR-0006.
Tujuan
Menaikkan keandalan & ketahanan jalur backend/integrasi tanpa melanggar ADR-0006 (provider opsional, di luar transaksi).
Scope (pakai skill awcms-mini-integration)
- Dispatcher outbox (fungsi internal, bukan endpoint publik) untuk
object_sync_queue — mencoba upload di luar transaksi, meng-update status/uploaded_at/retry_count/next_retry_at/last_error; hormati backoff evaluateObjectRetry. (Backlog eksplisit di sync-storage/README.md.)
- Timeout + retry/backoff + circuit breaker untuk tiap panggilan keluar (perluas
circuit-breaker.ts ke provider).
- Idempotency di batas integrasi: dispatcher aman diulang (dedup natural key / ledger batch); dead-letter/
failed + last_error + retry manual (pola /sync/object-queue/{id}/retry).
- Verifikasi webhook masuk (HMAC + anti-replay) bila menambah callback provider; SSRF-safe (URL dari env, bukan input user).
- Observability: correlation ID diteruskan lintas hop; log terstruktur; metrik saturasi/kegagalan dispatcher; redaksi secret/PII.
- Kontrak: endpoint/event baru → OpenAPI/AsyncAPI diperbarui; kompatibilitas mundur (perubahan additive).
- Degradasi anggun: provider/flag off → aksi tetap terantre, operasional tak berhenti.
Definition of Done
Referensi
Doc 16 (outbox, transaction, idempotency), doc 05 (kontrak), doc 10 (guardrail), ADR-0006. Skill: awcms-mini-integration, awcms-mini-sync-hmac, awcms-mini-idempotency, awcms-mini-audit-log.
Konteks
Base sudah punya pola outbox (
awcms_mini_sync_outbox,awcms_mini_object_sync_queue), HMAC sync + anti-replay, idempotency ledger, correlation ID, dan circuit breaker DB. Namun belum ada dispatcher pengirim nyata untuk objek/pesan, dan ketahanan integrasi ke provider luar (R2, WA, email, AI, pajak) belum dikeraskan menyeluruh sesuai ADR-0006.Tujuan
Menaikkan keandalan & ketahanan jalur backend/integrasi tanpa melanggar ADR-0006 (provider opsional, di luar transaksi).
Scope (pakai skill
awcms-mini-integration)object_sync_queue— mencoba upload di luar transaksi, meng-updatestatus/uploaded_at/retry_count/next_retry_at/last_error; hormati backoffevaluateObjectRetry. (Backlog eksplisit disync-storage/README.md.)circuit-breaker.tske provider).failed+last_error+ retry manual (pola/sync/object-queue/{id}/retry).Definition of Done
sent.failed+last_error→ retry manual →pending.bun run checkhijau; diverifikasi live.Referensi
Doc 16 (outbox, transaction, idempotency), doc 05 (kontrak), doc 10 (guardrail), ADR-0006. Skill:
awcms-mini-integration,awcms-mini-sync-hmac,awcms-mini-idempotency,awcms-mini-audit-log.