Flexipy
Індустрії · Послуги · Продукти

Проєкти · європейська платформа управління капіталом

Звірка, що ловить розбіжність того ж дня

01 Проєкт

Проблема

Звірка запускалася раз на місяць і порівнювала підсумки. Розбіжність, що почалася третього числа, виявлялася першого числа наступного місяця, коли причина була похована під чотирма тижнями записів.

Підхід

Ми перевели звірку на щоденне завдання, яке порівнює на рівні транзакцій, а не підсумків, і зробили кожен шлях запису ідемпотентним, щоб ретрай сам не створював розбіжності. Щоденний звіт називає першу розбіжну транзакцію, а не дельту.

02 Інженерія

Що було технічно складним

Перехід від підсумків до транзакцій множить порівняння на кожен рядок, і перший чесний запуск піднімає відразу всі дрібні історичні розбіжності. Щоденне завдання мало відділити розбіжність, яка виникла сьогодні, від тієї, що лежить там місяцями, — інакше перший звіт нечитабельний, а кожен наступний ігнорують. Ідемпотентність — друга половина тієї самої задачі: ретрай, який перепроводить рух, створює саме ту розбіжність, яку завдання має ловити, тож приймання мало стати безпечним для повтору ще до того, як порівнянню взагалі можна було довіряти.

Одне рішення, і чому

Звіт називає першу розбіжну транзакцію, а не розмір розриву. Дельта каже операційній команді, що щось не так, і лишає її шукати самотужки; ідентифікатор каже, куди дивитися. Це дорожче в обчисленні, бо завдання має тримати впорядковане порівняння замість двох сум, — і це єдина версія, яку хтось справді відкривав двічі.

start-project.sh

$ розкажіть, що ви будуєте і де застрягли

Забронювати 30-хв дзвінок

Відповідаємо протягом одного робочого дня.

Поговоримо про ваш проєкт

Виберіть час або напишіть — відповідаємо протягом одного робочого дня.

Станіслав Рибонька · Засновник і провідний інженер

Вибрати час →
або напишіть нам