TL;DR: Treat each kitchen-order transition as an invalidation signal, publish it only after the new state is committed, and make every kiosk refetch the complete board after reconnecting. Give displays subscribe-only tokens. This design favors an accurate screen over the comforting but false idea that a currently connected device could not have missed anything.
The simple experiment is to disconnect a display, advance several orders, and reconnect it. A client that trusts only the live stream can remain wrong; a client that reloads the board converges on the server's state. Transitions are small and frequent, while full boards are large and rare, so the split also avoids pushing an entire board for every change.
The provider belongs behind a narrow application contract. Then the capability can move without rewriting order-state code.…