OUTCOME PLAYBOOK
Deliver messages safely
Send a zero-credential local message, then move through consent, provider delivery, durable callbacks, and operational evidence.
- 1. Choose
- 2. Install
- 3. Run
- 4. Verify
- 5. Harden
- 6. Operate
#Choose the package boundaries
Required packages establish the local success path. Production and operate packages close durability and evidence boundaries.
Required
1. Send
@absolutejs/dispatchNormalizes email, messaging, and push behind one policy boundary.
Production2. Consent
@absolutejs/complianceOwns recipient purpose, channel permission, and revocation evidence.
Production3. Recover
@absolutejs/reliabilityMakes callback intake, retries, and indeterminate delivery operable.
Operate4. Prove
@absolutejs/auditRetains minimized send and callback evidence.
#Prerequisites
A stable tenant and recipient identity.
Explicit consent rules for every outbound channel.
Provider credentials and verified callback secrets only after local success.
#Install the complete surface
BASH
bun add @absolutejs/dispatch @absolutejs/auditSmallest useful file tree
TXT
src/
dispatch.ts # dispatcher and channel policies
consent.ts # recipient/channel decisions
callbacks.ts # verified durable webhook intake
worker.ts # retryable callback drain
dispatch.test.ts # memory-adapter proof#Run and verify
Send locally
Use the bundled memory adapter and send one email-shaped message.
Proof of success: inspect() returns exactly the normalized message you sent.
- 1. Choose
- 2. Install
- 3. Run
- 4. Verify
- 5. Harden
- 6. Operate
#Expected results
The memory adapter contains exactly one normalized message.
A denied-consent test never invokes the provider adapter.
A duplicate provider callback produces one normalized application event.
#Development to production
DevelopmentMemory channel adapterProductionOne explicit provider adapter per channel
Provider credentials and delivery semantics stay outside application intent.DevelopmentInline callback processingProductionDurable intake plus retryable drain
Acknowledgement, persistence, and application effects fail independently.#Failure decisions
A send is rejected before delivery.
Check firstInspect policy and consent evidence before provider logs.
ThenCorrect recipient/channel consent or application policy.
Delivery is indeterminate.
Check firstDetermine whether the provider accepted the request before retrying.
ThenReconcile by idempotency key and callback status.