IOSOR База знаний
Порядок событий vs posting в ledger
Out-of-order DLR и MO не должны ломать правила prepaid debit — порядок прибытия HTTP не закон денег.
Сеть доставляет callbacks out of order. Поздний DLR, ранний MO или status flip до settle не должны изобретать второй debit или переписывать settled-строку. Эта страница — контракт порядка posting: правила ledger переживают перестановку событий. Это не primer про correlation ID и не эссе MO-vs-MT billing.
Связанные: Дубликат webhook не должен писать второй debit, Ops webhook-consumer на volume, Гейт подписи и окна replay, Контракт webhook до первой отправки, debit и delivery status в одном ledger.
IOSOR — white-label prepaid. USD 20 оплачивает smoke out-of-order на одном коридоре; soft review около USD 1 000/мес делает «последнее событие побеждает money» долгом recon. Клиент видит только white-label слова статусов.
Порядок прибытия — не закон ledger
HTTP arrival — транспортная случайность. Money постится по hold → settle → outcome-update из контракта, а не по «какой callback пришёл последним». Soft USD 1 000/мес считает перестановку инцидентом finance, когда product показывает success, а ledger двигается дважды. USD 20 доказывает: forced late DLR не открывает parallel debit. Same-ID replay: Дубликат webhook не должен писать второй debit. Здесь — разные события, неверный порядок.
Как выглядит out-of-order
| Паттерн прибытия | Безопасный posting | Опасная реакция |
|---|---|---|
| DLR до settle ack | Pending; settle один раз под hold | Debit из одного DLR |
| Failed → delivered (один ключ) | Outcome in place | Второй charge за flip |
| MO до correlate MT | Inbox; join когда MT settles | Charge MO как outbound |
| Status после refund/release | Без новых money | Resettle released intent |
| Два terminal, один intent | Одна money-строка | Две. |
Правила posting, которые переживают перестановку
Hold и idempotency keys до side effects (Контракт webhook до первой отправки). Settle money один раз на billable intent; поздние события обновляют только outcome. Не открывать parallel debit из-за раннего или позднего DLR/MO. Reject/park вне signed window — без invented success. Export join по intent — не по arrival timestamp. Money↔outcome: debit и delivery status в одном ledger. Soft volume language blocked, пока smoke показывает две money-строки на один intent.
Lag нормален; double money — нет
Pending после settle обычен. Второй charge за тот же ключ из-за позднего callback — баг. Product и finance делят terminal words без hero upstream codes: Общий язык статусов для product и finance. USD 20 доказывает коридор, где DLR-before-settle и settle-before-DLR оставляют одну prepaid-строку.
Чеклист покупателя: порядок событий vs posting
- Hold/settle независимы от HTTP arrival?
- Late DLR обновляет outcome — не второй debit?
- Early MO не списывается как outbound?
- Refund/release блокирует resettle money?
- Workers на volume применяют ту же таблицу?
- Soft USD 1 000/мес blocked, пока smoke красный?
Любое «нет» держит ordered ledger posting в draft.
Начните с IOSOR
В консоли: Event order vs ledger posting must reconcile by shared id.. Укажите владельца и гейты до расширения.
Связанное: duplicate webhook no second debit webhook consumer ops at volume.
Вывод IOSOR
Это ops-дисциплина для смены — не брошюра.
Делайте: name owner + gate. Не делайте: skip the gate.
Был ли материал полезен?
Связанные гайды
- Мониторинг состояния конечных точек вебхуков
Узнайте, как отслеживать задержки ответов и коды состояния в IOSOR для предотвращения сбоев при доставке уведомлений и обеспечения стабильности системы.
- Настройка вебхуков для контроля пороговых значений баланса
Руководство по настройке автоматических уведомлений о балансе в IOSOR для предотвращения блокировок и управления JIT-выделением номеров при достижении лимитов.
- Обработка событий вебхуков для оперативного выделения номеров
Изучите автоматизацию жизненного цикла каналов через JIT-вебхуки в IOSOR. Настраивайте мгновенное назначение номеров и управление балансом в вашей CPaaS-платформе.