I have a task that involves talking to a .NET-based API (namely AutoCAD) to retrieve data, send commands, and react to events.I want to separate the API operations and the proper program logic (largely already implemented in Python) by using natural tools for both: a C# DLL for the former and a Python app for the latter.To connect these two pieces, I began exchanging JSON in ZeroMQ messages. I'm at early development stages but having recently discovered that ZeroMQ does not guarantee message delivery/order, I have reservations about whether this is a feasible way to go. Right now my app is a very basic REQ/REP pair and I plan to handle reacting to events and executing different commands by adding some sort of 'recipient-function' field to my message format.The reason that I want to use ZMQ is that I might be able to scale the software into a larger, multi-user, distributed solution sometime.I am a lay programmer so I would ask for your advice about this architecture. Should I just go ahead with it and plan to deal with message reliability/ordering when problems appear? Should I consider developing some kind of a REST wrapper around ZMQ?
Is ZeroMQ a good choice to make a Python app and a C# managed assembly work together?
c#;.net;python;sockets;message queue
ZeroMQ probably wouldn't be my first choice for this, but it should be doable.  The ZeroMQ manual has a section on reliability with REQ/REP sockets is there something you need beyond that?  As far as ordering goes would a simple 1 up counter work?  It would work more or less like TCP does if you receive a message before its time hold on to it and wait for the earlier message and perhaps send a response asking for a repeat of the missing message.