| I am a fan of "distributed computing" - but I do not make it complicated. I have created a generic broker daemon, which reads messages (in) and places them in the appropriate service (queue) which, at this time, is using sqlite. Then, a bunch of daemons (workers) connect to the broker service, and processes anything in the queue (process) and tells the broker when the message is OK or errored (output) I also have commands to check a service queue, active workers, etc. The broker is generic, simple, and fast. The workers do the actual, specific job. The communication between the client<-->broker and broker<-->worker is ZeroMQ.
There is also a "publish" if you choose to join, which some client programs do.. so they can see any errors on-the-fly. Installation/deployment is on a linux server using SystemD. Nothing fancy or complicated. Purpose is that this broker could serve useful for many projects I do in the future. |