All work
06Selected technical project

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.

Architecture
Order API
Node.js
State & queue
MongoDB
Bull queue
Event layer
Socket.IO
Connected interfaces
Kitchen Display clients
Dependent services