Подача
Заказ со стола по QR и кухонный экран в реальном времени.
Обзор
«Подача» — система для ресторана «Корка»: гость сканирует QR у стола, заказывает с телефона, и заказ за секунду прилетает на кухонный экран (KDS). Меню нарисовано чистым CSS и SVG — без стоковых фото. Всё открывается в браузере и работает как приложение — без установки.
Задача
Нужен надёжный реалтайм между залом и кухней: статусы должны синхронизироваться мгновенно между всеми экранами и телефоном гостя, кухня не должна терять тикеты при обрыве Wi-Fi, повторное нажатие «Заказать» не должно задваивать заказ, а итог с модификаторами обязан считаться на сервере.
Решение
Лёгкий стек на Node.js, Fastify, WebSocket и single-writer SQLite в режиме WAL. Каждое изменение пишет ровно одну строку-событие в outbox в той же транзакции; экран реконнектится по курсору lastEventId, доигрывает пропущенное и переключается на live без разрыва. Идемпотентный заказ по ключу, оптимистичная блокировка бампа (условный UPDATE, проигравший получает 409), серверное ценообразование, стоп-лист 86 вживую, сессии на httpOnly-cookie с авторизацией на WS-upgrade, CSRF и роли customer / staff / admin.
Результаты
Связаться