skipLink.label

Yetkazish & callback

Xabar queue’ga qo’yiladi, dispatcher provider’ga yuboradi, provider callback (webhook) orqali yetkazish holatini qaytaradi. Har urinish notification_delivery_attempts da, har callback notification_callbacks da qayd etiladi.

Status lifecycle

heading.anchorLabel
pending → queued → sending → sent → delivered → opened
│ │
├→ scheduled (kelajak) └→ failed / bounced
└→ cancelled
Status Ma’no
pending Queue’da, dispatcher oladi
scheduled scheduled_at kelguncha kutadi
queued / sending Provider’ga yuborilmoqda
sent Provider qabul qildi (ack)
delivered Recipient qabul qildi (callback)
opened Email/push ochildi
failed Barcha retry tugadi (DLQ)
bounced Email/SMS bounce (invalid manzil)
cancelled Bekor qilindi

Retry va idempotency

heading.anchorLabel
  • Retry — muvaffaqiyatsizlikda kvadratik backoff (30s, 120s, 270s…). max_retries tugagach failed.
  • Idempotencyidempotency_key bir xil xabarni takror yubormaydi.
  • WebhookPOST /webhooks/{provider}; provider_message_id orqali xabar topiladi va status yangilanadi.