The payment row committed. The SMS never sent. Fixing the gap with a transactional outbox and SKIP LOCKED
Here is a bug that idempotency keys cannot fix.
An M-Pesa webhook arrives. The interceptor claims the key. The payment row inserts cleanly into Postgres. The transaction commits.
Then, before the subs
kiragumaina.hashnode.dev5 min read