feat(intake): local-outbox pattern for air-gapped or flaky-link partners (ADR-017 OQ#1 deferral)
Context
ADR-017 Open Question #1 (closed) explicitly deferred this: an alternative auth/forward path for partners with intermittent or no inbound connectivity to craig-cases. Current stateless-intake design assumes a partner can synchronously POST to craig-intake which immediately forwards to craig-cases over HTTP.
For air-gapped or flaky-link integrations, a buffered local-outbox approach would let craig-intake accept submissions without a live cases connection and replay them when the link recovers.
Prior art
ADR-009 established a local-outbox precedent for craig-exchange's outbound side. The same pattern could apply here, with intake-side persistence (small SQLite or filesystem-backed queue rather than reintroducing Postgres).
Why deferred
No partner deployment with this constraint exists yet. Designing for a hypothetical pre-v0.1 isn't worth the maintenance cost. File this as a real plan when a partner with this requirement is identified.
References
- ADR-017 §"Open questions" (Q1) and resolution table at `docs/modules/ROOT/pages/adrs/adr-017-stateless-intake.adoc`
- ADR-009 (local-outbox precedent) at `docs/modules/ROOT/pages/adrs/adr-009-local-outbox.adoc`
- Stateless-intake plan §"Out of scope" at `docs/modules/ROOT/pages/plans/stateless-intake.adoc`