Move message handling to dedicated subsystem
Given that a lot of the NRM features deal with sending/receving messages around, I recommend splitting all message flow handling to a dedicated subsystem. This should deal with message formats and basic zmq handling.
I would recommend a textual format for now, like JSON, as an easy way to debug and develop the core functionalities.
We should pay attention to:
- being able to acknowledge that a command has been received
- being able to support multiple components talking through the same socket
- identify/differentiate multiple components of the same application
This is the "external" format. Internally, all of that should use native structures, either dictionaries or actual objects.
The TODO for this issue are:
- add json handling to NRM
create basic messaging subsystem
- move socket management to new subsystem
- handle client registration and tracking
- handle basic message flow (acknowledgements)
- handle message pack/unpack