Is ZeroMQ a good choice to make a Python app and a C# managed assembly work together?
- by Alex Bausk
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?