Как пройти в метро за 1 рубль. Часть 2
(первая часть)
Вы прикладываете карту к турникету. Турникет открылся. Хотя денег на счёте – ноль.
Как так? Почему пустили?
Ваш попутчик прикладывает Тройку. Турникет открывается. Никакого сервера даже не спрашивали.
Человек впереди посмотрел в камеру. Турникет открылся. Его лицо обработал сервер, который стоит тут же, в вестибюле.
Одна железка – три принципиально разных архитектуры.
🔶 Тройка работает автономно. Чип на карте хранит баланс – он и есть источник истины. Турникет считывает его локально – решение принимается за миллисекунды, без сервера. Даже если все серверы метро упадут – Тройка продолжит работать. А с 2024 года турникет ещё и записывает отложенное пополнение на карту прямо при проходе: вы пополнили Тройку через приложение, а баланс на чипе обновится, когда приложите карту к турникету.
🔶 Банковская карта – сначала пропусти, потом разберись. Турникет проверяет только одно: нет ли карты в стоп-листе (список карт, с которых метро не смогло списать деньги за прошлые поездки). Нет? Открывается. Фактическое списание произойдёт позже – сначала авторизация (блокируется 1 рубль), потом клиринг (финальный расчёт на полную стоимость).
Если денег на счёте ноль – турникет всё равно откроется. Он не знает ваш баланс. Стоп-лист обновляется не в реальном времени. Перевозчик осознанно принимает этот риск – остановить поток людей дороже, чем потерять 83 рубля.
🔶 Face Pay – распознавание на месте. Гонять каждое лицо в облако – слишком медленно. Поэтому в каждом вестибюле стоят edge-серверы с копией математических слепков лиц. Сравнение происходит тут же, за доли секунды. Но если этот сервер упадёт – Face Pay встанет. Единственное из трех решений, которое зависит от вычислительного сервера на месте.
Все три архитектуры – ответ на один вопрос: что должно работать, даже когда связи нет?
Тройка работает всегда – ей вообще не нужна связь. Банковская карта – пока не попадет в стоп-лист. Face Pay – пока жив сервер в вестибюле. Боромир – заплатит наличными.
Каждая архитектура ошибается по-своему. И каждая жертвует чем-то ради главного.
А чем бы вы пожертвовали, если бы делали систему оплаты с нуля?
P.S. Чем-то мне это напоминает CAP-теорему. Если набираем 🔥 – разберу её на пальцах в следующем посте.
@analyst_exe
Post #606
416

- 🔥 18
- ❤ 2