Система виплат
"Ручні виплати стали маршрутизатором — 40+ напрямків «валюта × метод», без жодного втраченого колбека."
- 40+
- 0
- 24/7
Обмінник, де кожна виплата проходила через людину — картки, IBAN, Wise, PayPal, Revolut, Interac, Idram, UZCARD, Humo. Перебудовано як шар маршрутизації з надійною доставкою, тож ніщо не залежить від того, чи хтось не спить.
Бекенд та інтеграції — сервіси виплат, плагін на боці біржі, інструменти для операторів, деплой.
Проблема
Доставка була best-effort у буквальному сенсі: одна спроба туди, одна назад, помилка в лог і забули. Рестарт посеред виплати лишав гроші відправленими, а заявку — завислою назавжди, і кожна нова валюта означала правки коду в трьох місцях.
Підхід
- 01Описав напрямки як дані — пара «валюта + метод» мапиться на маршрут, тож новий це рядок у таблиці, а не деплой.
- 02Зробив доставку надійною: результат пишеться до колбека і знімається лише після підтвердження, а фоновий дрейн дотискає решту.
- 03Повторюю лише те, що лікує час — мережу, 5xx, протерміновану авторизацію — і закріпив правило юніт-тестом.
- 04Додав на боці біржі сканер перевідправки за розкладом; приймач дедуплікує за UUID, тож повторний POST це просто ретрай.
- 05Переніс роботу операторів у Telegram замість панелі, яку ніхто не тримав відкритою.
- 06Прибрав демо-секрет із коду в оточення, що підставляється через CI.
Результат
- →Результати виплат переживають рестарти, деплої та мережеві збої — черга дренується й доставляє.
- →40+ напрямків «валюта × метод» у продакшні: від GBP і CAD до UZS, TJS, GEL, AMD та NGN.
- →Заявки більше не губляться між біржею і сервісом виплат: дедуплікація за UUID робить перевідправку безпечною.
- →Депозити, які раніше заводили руками, тепер проводяться автоматично.
- →Операційний процес живе в Telegram, а адмінка стала поверхнею аудиту, а не вузьким місцем.
Бізнес-вплив
Відділ виплат перестав бути людиною: заявки маршрутизуються самі й підтверджуються назад без нагляду, зокрема крізь рестарти, які раніше коштували завислої заявки. Новий ринок тепер це конфігурація — тому напрямків уже за сорок.
Під капотом
Сервіси виплат
- Rust · надійна черга колбеків
- SQL-міграції · таблиця відкладених результатів
- Політика ретраїв під юніт-тестом
- Telegram-боти для операторів
Інтеграція з біржею
- Laravel-плагін · сканер перевідправки за розкладом
- Дедуплікація за UUID · 409 як сигнал ретраю
- Парсери провайдерів (Node)
- Секрети через CI, жодного в коді
Платформні сервіси
- NestJS · Prisma · Telegraf
- Вітрина обмінника на Nuxt · i18n · PWA
- Java · Spring P2P-сервіс
- Сервіс генерації PDF (NestJS)
Інфраструктура
- Docker Compose на сервіс
- GitHub Actions · секрети в оточення
- Скрипти самоперевірки на хості
- Структуровані логи для трасування доставки
Є система, яку треба збудувати?
Платежі, інтеграції, мобільні застосунки, пайплайни даних — якщо це має працювати без нагляду і бути коректним, це моя робота. Від архітектури до запуску, і далі — підтримка.