ADR-032 — Integration adapters

Architecture decision record — status: Accepted.

Source: docs/adr/ADR-032-integration-adapters.md

ADR-032: Integration adapters

Estado

Accepted — 2026-08-23

Contexto

CSV, Gmail, M365, AI vendor, más adelante QBO/Xero/Stripe. Si el dominio importa SDKs, el bounded context muere con el vendor.

Decisión

Integration Hub (DOC-003): un puerto por capacidad, un adapter por vendor.

PuertoAdapter V1Después
InvoiceImportCSVQBO, Xero
MailboxGmail, Microsoft 365otro
ClassifierAI gateway (OpenAI u otro)reglas + modelo
ObjectStoreS3/R2 (ADR-029)
BillingningunoStripe (ADR-036)

Reglas:

  • Domain/application no importan SDKs.
  • Webhooks entran por presentation → use case; firma verificada en adapter.
  • Reintentos e idempotencia en el adapter/job (ADR-022).
  • Credenciales por Organization, cifradas (ADR-015).

Consecuencias

  • Spikes de OAuth mailbox y de modelo de clasificación antes de Spec Kit de esos epics.
  • QBO no se scaffolda “por si acaso”.