OTPs and notifications
A message is validated, routed to a carrier, tracked through a state machine Postgres enforces, and reported back to you by signed, at-least-once webhooks with retries and circuit breaking.
Integrating with vsms
Cameroon-first and extensible. OTP and notification delivery over Orange and MTN, with signed webhooks, no shared secrets on the API, and PostgreSQL as the only coordination mechanism.
A message is validated, routed to a carrier, tracked through a state machine Postgres enforces, and reported back to you by signed, at-least-once webhooks with retries and circuit breaking.
Integrating with vsms
Every request is a COSE_Sign1 message signed with a key the caller generated, and every answer is signed back. Staff use the console with a key their own browser made, paired by a vaam admin phone. There are no tokens to acquire or refresh, and the Rust and Node SDKs do the signing for you. Webhooks are sealed the same way; an endpoint can still be set to the original HMAC mode, for receivers that have not moved.
SDKs
System of record, claim loops, leader election and the message and job state machines all live in PostgreSQL 16. No broker, no Redis, no consensus library.
Architecture
just demo brings up Postgres, the gateway, the worker, a fault-injecting fake Orange and the admin console, and a message reaches delivered without a single real SMS being sent.
Local development