Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MicroServices capability? #234

Open
KrishnaPG opened this issue Sep 3, 2017 · 1 comment
Open

MicroServices capability? #234

KrishnaPG opened this issue Sep 3, 2017 · 1 comment

Comments

@KrishnaPG
Copy link

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:

  • Load balanced RPC providers (with multiple scheduling methods support, such as Round-Robin, LRU etc.)
  • Dynamic providers that can come and go anytime (connected through, say, wifi hotspots or any narrowband networks)
  • Polyglot providers (RPC methods created in various multiple languages, but exposed, with just a line or two code, to the framework as RPC providers)
  • Mesh capability. Something similar to Seneca Mesh and/or interoperates with similar mesh networks based on patterns (thus creating complete transparency of the provider)

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
Copy link
Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants