Kitchen Display System
A real-time system for managing orders and preparation stages, propagating events between backend services and connected kitchen-display interfaces.
Role
Contributor — real-time & asynchronous processing
Context
A selected technical project focused on the real-time layer of a kitchen-display style system: tracking orders and their preparation stages as they move through the kitchen, and keeping every connected display in sync.
System
Order and preparation-stage state lives in MongoDB; Bull queues handle asynchronous processing of stage transitions; Socket.IO propagates state changes as events to every connected service and display.
Problem
Preparation-stage updates need to reach every connected display and dependent service consistently and in order — inconsistency or dropped events directly affects kitchen operations.
Engineering challenge
Diagnosing anomalies meant following one continuous flow — API request, database write, queue job, emitted event, and every service that consumed it — rather than debugging any single layer in isolation.
My contribution
- Contributed to the real-time system for managing orders and preparation stages, propagating events between backend services and connected interfaces.
- Maintained business rules and asynchronous processing, analyzing synchronization, data-consistency and performance issues.
- Diagnosed abnormal behavior by tracing the complete flow between the API, database, queue, events and dependent services.
Technical decisions
- Kept preparation-state transitions as queued jobs (Bull) rather than handling them inline, so a slow or failing step didn't block the request path.
- Used Socket.IO as a single event-propagation layer so every connected display and service consumes the same source of truth.
Technology
- Node.js
- The order and preparation-stage API.
- MongoDB
- Stores order and preparation-stage state.
- Redis
- Backing store for the queue.
- Bull
- Asynchronous processing of stage transitions.
- Socket.IO
- Propagates stage-change events to every connected display and service.
- Docker
- Containerized deployment.
Result
Improved traceability of order-state issues by following the full request-to-event flow, rather than inspecting each service in isolation.
What I learned
In a real-time, multi-consumer system, correctness is mostly about the flow between services — the business rule at any single point is usually the simple part.