🍞Сказание о Тостере, или витки СЛОВАРНОГО ада 😈
(по мотивам финтеха и с налетом ISO-бюрократии)
Привет! Я вернулась с DevOpsConf (не без приключений: вместо Ларнаки чемодан улетел в Берлин) — и буквально сразу оказалась в омуте, который технически называется "рабочий процесс", а неофициально — «бесконечная археология».
И вот за 2 дня я трижды наткнулась на один и тот же кейс, в абсолютно разных местах. Архитектурный баг, элегантный, как капкан в траве.
Ситуация простая: Есть страна. Есть валюта. Потом что-то происходит (политика, экономика, сюрприз от регулятора) — и валюта меняется. Страна остается, но с новым кодом валюты. А платежная система должна уметь:
1️⃣Принимать новую валюту.
2️⃣Работать с возвратами по старой валюте.
3️⃣Держать в голове курсы, даты, соответствия и здравый смысл.
Перейдем на уточнение примера:
Человек в декабре купил себе тостер и миксер (в подарок жене и теще на Новый год).
В январе страна изменила валюту.
В марте (а возможно и в июле или в марте через 2 года) тостер сгорел.
Покупатель возвращается в магазин: «верните деньги».
А вы как платежная система ему такие: «...в какой валюте? 😶»
👉 на API у вас уже только новый код валюты,
👉 возврат оформляется в старой,
👉 справочник не обновился,
👉 курс не подтянулся (да ему мб уже и неоткуда, так как вы сидите не на своих курсах, а берете из с какого-то сайта),
👉 а тот, кто пишет багрепорт — это вы.
🎢 А дальше начинается карусель:
- как хранить валюты (справочник ISO уже обновился (про справочник валют и немного приколов с ним вот тут и тут), а вы его уже подтянули)?
- как хранить курсы?
- кто их предоставляет?
- по какой дате брать курсы в обратную сторону?
- и можно ли вообще в API не указывать валюту, если она исчезла?
- а что делать в отчетах?
- а как проводить сверку?
- а что сломается у контрагента, если проведем в старой валюте?
⚙️ Проблема не в том, что у вас баг. Проблема в том, что он архитектурный, даже ДОМЕННЫЙ. Это не баг про "сломалось", а про то, что не предусмотрели:
— что старая валюта может еще всплыть
— что надо уметь работать с "мертвыми валютами"
— что курсы тоже умирают, как персонажи в греческой трагедии
— и что когда тебе говорят «ничего сложного, просто добавь валюту», ты можешь только горько улыбнуться
Так что да, это не пост про тостеры. Это пост про сложность проектирования архитектуры, особенно в домене, где «поменять одну строчку» тянет за собой все круги ада, начиная от API, заканчивая бухгалтерией и legal.
💬 А у вас бывало такое, чтобы одна и та же "мааааааааленькая" архитектурная проблема возникала в разных проектах, да еще и в одночасье?
#architecture #fintech
Post #564
580

- 🔥 10
- 👍 6
- 🤯 2
- ❤ 1
- 💯 1