OH

Events, Webhooks, Retries & Reconciliation

Transactional-outbox operations for integration owners: outbound events are persisted with transaction state before dispatch, webhooks are signed with replay protection, retries are bounded, and failures land in a dead-letter queue with owner-visible incidents (INT-02).

INT-02
Events published (24h)
18,204
Across 42 event types · 6 subscriptions
Delivered first attempt
97.6%
▲ 0.4pt vs. 7-day average
Currently retrying
12
Bounded backoff 1m → 12h, max 6 attempts
Dead-letter queue
7
Oldest 2d 4h · replay requires approval
Reconciliation variance
3
16 Jul window · under investigation

Event envelope — evt_01J8Z6QF

{
  "eventId": "evt_01J8Z6QF",
  "type": "invoice.posted",
  "schemaVersion": "2.1",
  "occurredAt": "2026-07-17T05:42:18Z",
  "businessDate": "2026-07-17",
  "currency": "AED",
  "amount": "78,750.00",
  "tenant": "al-manara-llc",
  "scope": "dubai-hq",
  "correlationId": "c0a8-17ju-2026-8802",
  "causationId": "evt_01J8Z5RD",
  "definitionVersion": "fin-posting v14 (prior v13)",
  "contentHash": "sha256:5b02…91cf",
  "producerTs": "2026-07-17T05:42:18.240Z"
}

Envelopes carry event/correlation IDs, tenant/scope, definition version and prior version, effective time and a content hash — and never secret or unnecessarily sensitive values (§14). Payload PII is referenced by canonical ID, not embedded.

Outbox — persisted before dispatch

Last 6 h Failed only
Event IDType · schemaScopeCorrelationPublished (UTC)State
evt_01J8Z6QF invoice.posted · v2.1
INV-2026-0879 · Amina Noor · AED 78,750.00
dubai-hq …-8802 17 Jul 05:42 Confirmed
evt_01J8Z6M2 lead.created · v3.0
LEAD-10236 via Bayut connector
dubai-hq …-8795 17 Jul 05:31 Confirmed
evt_01J8Z5PK unit.reserved · v2.0
PR-A-1104 · Prototype Residences A
dubai-hq …-8781 17 Jul 05:08 Confirmed
evt_01J8Z4TN TemplateBindingActivated · v1.2
Sale contract EN/AR binding v9
tenant-wide …-8776 17 Jul 04:55 Confirmed
evt_01J8Z3RW listing.status.changed · v2.3
LST-2041 → PUBLISHED (Bayut)
dubai-hq …-8760 17 Jul 04:12 Retrying 3/6 · next 06:12
evt_01J8Z2H8 ProviderProfileHealthChanged · v1.0
Dubizzle connector → DEGRADED
tenant-wide …-8741 17 Jul 03:38 Confirmed
evt_01J8Z1CD ConfigurationDriftDetected · v1.0
Runtime differs from approved baseline · comms-policy
tenant-wide …-8733 17 Jul 03:02 Confirmed
evt_01J8YZKQ receipt.allocated · v2.0
RCPT-5521 → INV-2026-0871 · AED 25,000.00
abu-dhabi …-8719 17 Jul 02:47 Confirmed
evt_01J8YWB3 deal.stage.changed · v3.1
DEAL-3302 → CONTRACT (Falcon Trading FZ-LLC)
dubai-hq …-8694 17 Jul 01:20 Dead-letter
evt_01J8YV9A payroll.policy.activated · v1.0
Commission plan FY2026-H2 (announce-only)
tenant-wide …-8688 17 Jul 00:58 Confirmed
10 of 18,204 events (24h) · state persisted with source transaction before dispatch

Delivery attempts — evt_01J8YWB3 → Bayut status webhook

#EndpointDispatched (UTC)ResultLatencySignatureBackoff / next
1hooks.bayut.partner/almanara/status17 Jul 01:20:04503 Service Unavailable30,004 msHMAC-SHA256 sent · nonce n-8841+1 m
2hooks.bayut.partner/almanara/status17 Jul 01:21:06503 Service Unavailable30,002 msHMAC-SHA256 sent · nonce n-8842+5 m
3hooks.bayut.partner/almanara/status17 Jul 01:26:11503 Service Unavailable30,007 msHMAC-SHA256 sent · nonce n-8843+15 m
4hooks.bayut.partner/almanara/status17 Jul 01:41:15503 Service Unavailable30,001 msHMAC-SHA256 sent · nonce n-8844+1 h
5hooks.bayut.partner/almanara/status17 Jul 02:41:19503 Service Unavailable30,003 msHMAC-SHA256 sent · nonce n-8845+4 h
6hooks.bayut.partner/almanara/status17 Jul 06:41:22503 Service Unavailable30,005 msHMAC-SHA256 sent · nonce n-8846Exhausted → DLQ + INC-2231

Every webhook is signed (HMAC-SHA256 over body + timestamp) with a unique nonce for replay protection; receivers must reject stale timestamps and reused nonces. Retries use bounded backoff (1m, 5m, 15m, 1h, 4h, 12h — max 6 attempts), then the event quarantines to the DLQ. All attempts are captured for audit.

Inbound webhook verification (last 6 h)

Received (UTC)SourceSignature checkReplay checkDisposition
17 Jul 09:41Property Finder lead webhookValidFresh nonceAccepted → lead connector
17 Jul 09:12Payment gateway settlement callbackValidFresh nonceAccepted → banking adapter
17 Jul 08:57Unknown origin (IP 203.0.113.44)Invalid — WEBHOOK_SIG_INVALIDRejected, audited, no state change
17 Jul 08:20Bayut lead webhookValidNonce reuse — replay blockedRejected · original delivery already processed
17 Jul 07:44E-signature provider eventValidFresh nonceAccepted → document adapter

Dead-letter queue — 7 quarantined events

Event IDTypeSubscriptionFailure reasonAttemptsQuarantined (UTC)IncidentStatus
evt_01J8YWB3deal.stage.changedBayut status webhookEndpoint 503 on all attempts6/617 Jul 06:41INC-2231Replay requested — awaiting approval
evt_01J8XR20listing.status.changedBayut status webhookEndpoint 503 on all attempts6/616 Jul 10:12INC-2231Replay requested — awaiting approval
evt_01J8XQZLlisting.status.changedBayut status webhookEndpoint 503 on all attempts6/616 Jul 09:58INC-2231Replay requested — awaiting approval
evt_01J8XP44listing.status.changedBayut status webhookEndpoint 503 on all attempts6/616 Jul 09:21INC-2231Replay requested — awaiting approval
evt_01J8W1D7invoice.postedPartner ledger feed (Prime Link)Receiver rejected signature (their key rotated)6/615 Jul 22:10INC-2229On hold — receiver fixing key
evt_01J8V8SMlead.createdMarketing DW sinkSchema mismatch — consumer pinned v2, event v36/615 Jul 14:02INC-2226Consumer migration in progress
evt_01J8V2K9receipt.allocatedPartner ledger feed (Prime Link)Receiver rejected signature (their key rotated)6/615 Jul 05:33INC-2229On hold — receiver fixing key

Reconciliation report — window 16 Jul 2026 00:00–24:00 UTC

Variance 3 — investigating
Event typeProducedDispatchedDeliveredConfirmedDLQVarianceStatus
lead.created41241241141110Reconciled
listing.status.changed1,2681,2681,2651,26530Reconciled
invoice.posted18418418418400Reconciled
receipt.allocated20320320320300Reconciled
deal.stage.changed9693939303Variance — 3 events stuck in PENDING; outbox scan re-queued them 17 Jul 03:05
unit.reserved5757575700Reconciled
ProviderProfileHealthChanged1414141400Reconciled
Total (window)17,91117,90817,90417,90443

Delivery success — last 7 days

DayDispatchedDeliveredDLQSuccess rate
11 Jul16,88216,730099.1%
12 Jul15,90415,809099.4%
13 Jul17,24016,930098.2%
14 Jul18,01117,831099.0%
15 Jul17,65517,002396.3%
16 Jul17,90817,030495.1%
17 Jul (to 10:00)7,9047,714097.6%

Static render mockup — no live data. Source: ERP Modern Development Specification v2.0 · Covers: INT-02 (with §10.3 event standards and §14 outbox envelope rules).