Change Upstream API messaging layer
The upstream API relies on the daemon being a subscriber to upstream commands. Zeromq doesn't exactly recommends these kinds of setups, with a stable component being subscriber, and ephemeral components being publishers. Different implementations of zmq will also break in subtle ways on this pattern.
The proper solution is to change this part of the upstream API to a REQ/REP pattern. This way the commands can be acknowledged. One thing that needs to be discussed for that is which replies to send on the pub socket and which send as a reply.