The Ledger Committed. Webhook Delivery Is Unconfirmed. What Should Retry?
This article is a contribution from the A2VANTA engineering team. You read a committed payout reservation in the ledger, but you cannot confirm webhook delivery. Retrying the payout command would ask the service to perform a financial operation. Retrying the notification would ask it to send a saved event. An integration needs to distinguish those requests before choosing its recovery action. In…
The article discusses the potential issues with webhook delivery in a financial system and the importance of distinguishing between different requests when retrying operations. It explains that a payout reservation involves creating a journal entry in the ledger and staging a notification event in the same database transaction. The event is later enqueued for delivery, which requires an active endpoint and enabled webhooks.
If the delivery fails, the sender may be left uncertain, as the reservation and notification have already been committed to the ledger. The article emphasizes that each event has an ID, body bytes, and hash, and that retries retain the event ID and body bytes. It also highlights that retries can result in signature changes due to the use of a specific transmission timestamp, event ID, and exact body bytes.
Brief written by urgent.news from Dev.to's own syndicated text. Machine-written — may contain errors; check the original before relying on it.