Клиент: Azat.team · Extenda Retail
POS для сети АЗС и Dart SDK
Десктопная POS-система на Flutter и проприетарный Dart SDK для сети АЗС, с интеграцией фискальных принтеров ATOL и платёжных терминалов PAX.
Контекст
На АЗС касса — ещё и юридический инструмент. Каждая продажа обязана дать фискально валидный чек, сойтись с колонками и пройти через платёжный терминал — по всей сети точек, каждая из которых открывается независимо от того, как прошёл последний релиз.
Что делало задачу сложной
Этот класс систем сложен по причинам, не имеющим отношения к интерфейсу. Касса обязана завершить продажу и выдать валидный чек независимо от того, жива ли связь точки с центром. Фискальные принтеры и платёжные терминалы — физические устройства со своими протоколами, особенностями прошивок и собственным представлением о том, что такое ошибка; замокать их полностью нельзя, потому что значимые режимы отказа проявляются только на реальном железе. Вдобавок фискальные правила задаются по странам, и один продукт должен удовлетворять разным режимам.
Что я сделал
- Десктопная POS-система на Flutter для сети АЗС
- Проприетарный Dart SDK, прячущий доступ к устройствам за единым интерфейсом
- Интеграция фискальных принтеров ATOL и платёжных терминалов PAX
- Киосковый терминал самообслуживания на JavaFX
- Сервисы на Serverpod за кассой
Результаты
- >99.5% аптайма кассовых операций
- 12 касс в 4 точках, период — 6 месяцев продакшена (янв–июн 2026). Источник — blackbox-пробы раз в минуту на /health и на реальный сценарий оформления заказа, плюс Sentry по 5xx. Даунтаймом считались ≥2 подряд неуспешные пробы. Плановые деплои не исключались.
Стек
- Flutter
- Dart
- Serverpod
- JavaFX
- ATOL
- PAX
- PostgreSQL