One source of truth for an order, three clients watching it
A customer tracks an order while the kitchen advances it and the owner watches the queue. A stale status means food cooked twice, or not at all.
One orders table as the only source of truth, with Postgres change events pushed to every connected client. No client computes status locally, and none of them poll.
Every open client holds a live subscription, so reconnection and out-of-order events had to be handled deliberately rather than assumed away. That cost bought the disappearance of an entire class of “my screen says something different” bugs.