In a 20 thousand feet view, two persistent communication channels* will be maintained, one for commands generally coming from the ZoomShop (client) to the NCube (server) for dispensing, inventory requests, etc. in an RPC style and another one for events (in fire-and-forget style) which flow is to be started from the NCube (server) to the ZoomShop (client).
Having persistent connections benefits both parties as both can immediately detect when a connection was broken and take the appropriate measures.
On a related note, but not relevant to this document, both commands and events messages (see NCube Protocol Format > Messages) are to be serialized as XML documents.
*Note: Within this document, the term stream, socket connection and channel are treated as synonyms.