HBPVIS / ZeroEQ

Cross-platform C++ library for fast binary and REST messaging
https://hbpvis.github.io/
Other
40 stars 25 forks source link

MicroServices capability? #234

Open KrishnaPG opened 6 years ago

KrishnaPG commented 6 years ago

Came across this library while looking for a good microservice platform for C/C++. This seems to be a good work, but trying to understand more about its capabilities. Any pointers / help is appreciated.

Some of the capabilities I am looking for are:

In the Industrial IOT field, these above are the need of the hour and ZeroEQ can be a good starting point to achieve these, since it already has REST and RPC, making it easy to achieve the Polyglot capability. If more architectural details are documented/explained, others like me would be happy to contribute where possible. I would love to see Load-balanced Polyglot RPC providers that dynamically gets discovered through Mesh and provide the services to the clients and go away.

tribal-tec commented 6 years ago

Thanks for your interest in ZeroEQ. I'm trying to respond to your questions to best of my knowledge

  1. We have no load-balancing on the ZeroEQ level, but the underlying zmq has one for the request-reply sockets aka the Client/Server in ZeroEQ.
  2. That's a basic feature already provided by zmq, hence there shouldn't be anything necessary on the ZeroEQ level. However, we discover new resources via ZeroConf (avahi on Linux, dnssd on mac/windows) which by default is limited to a single network. So for multiple network provider/resource discovery, this has to be implemented.
  3. Multiple languages are easily supported by the HTTP interface for clients, just choose your language of choice with HTTP support. For the 'binary' support, aka Publisher/Subscriber and Client/Server, language bindings can be an option, but today we have none implemented/provided.
  4. Not sure about this one. I have no experience whatsoever with mesh networks. As stated in 2., our current discovery is based on ZeroConf. If a mesh network implementation has a similar API, it can be easily added as part of the Servus library

Hope this helps you a bit more and I'm looking forward to hear back from you. Cheers, Daniel