ADR 0001: Public Contract Through API
Status
Accepted
Context
The project needs a stable HTTP REST JSON API for other systems, a vendor WhatsApp runtime, and a small operator-facing application for manual actions.
Decision
whatsapp-adapter-waharemains a private vendor integration module.whatsapp-adapter-apiis the only public application contract.whatsapp-adapter-appcallswhatsapp-adapter-apiand never talks towhatsapp-adapter-wahadirectly.- Group identifiers exposed to operators and external systems are project-owned IDs issued by
whatsapp-adapter-api, then mapped to WAHA group IDs.
Alternatives Considered
- Let
whatsapp-adapter-apptalk directly towhatsapp-adapter-waha. - Expose
whatsapp-adapter-wahadirectly to external clients. - Merge
whatsapp-adapter-appintowhatsapp-adapter-apifrom day one.
Consequences
- We keep one integration path to WAHA and one stable contract for clients.
whatsapp-adapter-apiowns validation, mapping, and future persistence.whatsapp-adapter-appstays replaceable without breaking external users.