К содержимому
Кейсы

Клиент: 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