IOSOR База знаний
Когда cap tenant во встроенном продукте обязан остановить send
Fair-share caps внутри продукта ISV обязаны hard-stop send для tenant — никогда не отдавайте fake delivered API 200 при ударе в потолок.
Встроенному multi-tenant SaaS нужны fair-share caps, чтобы один шумный tenant не сжёг общий prepaid ledger и не задушил соседей. Cap, который только красит warning, пока API принимает submit, — театр. При ударе в лимит send этого tenant останавливается с явной product-ошибкой и mapped non-success статусом API. Fake delivered 200 убивает reconciliation и учит abuse.
Caps живут в product layer ISV. Они не заменяют Partner subtenant rate limits и не равны silent queue drop. Честный stop: UI показывает paused или capped, embed-сервис отказывает новым submit для tenant id, ops экспортирует, кто ударил в потолок.
Stop-контракт до pilot: единица cap, окно reset, кто raise, что видит end user. Добавьте owner на refuse-код в embed-сервисе и канал эскалации, если raise нужен вне окна reset.
Удар в cap значит отказать submit, а не soft-warn вечно
Soft warning — только early alert. На hard ceiling embed возвращает tenant-capped ошибку и не вызывает messaging API для новых intent. In-flight с hold могут завершиться; новые OTP и campaign ждут reset или approved raise.
Логируйте отказ: tenant id, правило cap, timestamp. Support нужен ряд, когда клиент кричит, что Send сломан.
Никогда не чеканьте delivered success на capped path
| Ответ | Когда можно | Запрещено когда |
|---|---|---|
| Product capped / paused | Hard ceiling | Путь cap refuse |
| HTTP non-success / mapped error | Cap refuse | — |
| Delivered / 200 success | Реальный accept + hold | Cap refuse |
| Silent drop | Никогда | Всегда |
Silent drop и fake 200 — тот же класс лжи, что overflow с притворством success. Scale adjacency — overflow stop; здесь триггер — fair-share tenant внутри ISV.
Выровняйте product caps со stop lines wallet
Tenant может быть под cap, пока stop line wallet уже красная — тогда паузится весь embed path. Wallet green не снимает tenant, сжёгший долю. Один язык статуса: tenant capped vs account paused vs оба.
Raise требует именного approver. Unlimited self-serve raise убивает fair share.
Протестируйте stop в staging на шумном tenant
Staging drill: один tenant заливает OTP до cap, siblings шлют, export — refuse без delivered fake. Если siblings встают — scope кривой. Если шумный tenant видит green — stop сломан.
Связанные пути
- Rate limits subtenant и fair share
- Overflow очереди: stop, не silent drop
- Stop lines wallet до production
Начните с IOSOR
Настройте в консоли IOSOR жесткий лимит отправки для тенантов и проверьте обработку ответов через шлюз. Убедитесь, что при превышении квоты сервис возвращает явный статус ошибки tenant-capped, а не формирует ложные webhook-уведомления о доставке. Проведите тестовый прогон в staging-среде, чтобы подтвердить изолированную блокировку лимитированного субклиента без влияния на соседние аккаунты.
Итог IOSOR
Жесткий лимит мультиарендной системы защищает шлюз от исчерпания ресурсов одним шумным субклиентом. Если тенант исчерпал свой лимит, платформа должна немедленно отклонять новые запросы на отправку, сохраняя работоспособность параллельных потоков и общий баланс системы.
Делайте прозрачную обработку превышения лимитов с явными HTTP-ошибками и точной записью отказов в журнале аудита. Не имитируйте успешную доставку со статусом 200 OK при исчерпании квоты и не допускайте сбоев у соседних тенантов при блокировке нарушителя.
Был ли материал полезен?
Связанные гайды
- Встраивание API vs white-label партнёрский портал
SaaS, который встраивает messaging, остаётся на поверхности ISV. White-label партнёрский портал — зона Partner: не смешивайте бренд, ключи и ownership ops.
- Send end-user всё равно бьёт в один prepaid ledger
Встроенный Send списывает prepaid wallet ISV. Не выдумывайте второй ledger, который продукт не финансирует — hold, retry и idempotency остаются честными.