-
Notifications
You must be signed in to change notification settings - Fork 42
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
What about a feathers-µservice instead #64
Comments
All things considered I believe using the message bus to proxy service requests is the best because it does not require to know something about the infrastructure topology while using feathers client will require you to know the IP adresses of the different machines. The knowledge of the infrastructure is delegated to the message bus/broker and you simply connect to its entry point. |
I really like the idea but I'm wondering if Should we combine those two approaches into |
Like the idea of Although the primary purpose of the So if I understand well you propose to add an abstraction over a messaging system so that we could imagine something similar to REST/Socket:
What I imagined was adding a similar set of events than the ones that already exist after a service has been called ( Code would look something like:
Indeed one purpose of such brokers is also to make newly connected apps react to an existing set of events coming from existing applications. Then each Feathers app should have its own service registry (ie the app), local/remote services should be callable transparently. The low-level event binding will be used by the services, eg:
The tricky part (v2) would be to also distribute hooks. Indeed because they are first class citizens like services to handle business logic you often face the situation where a module/app wants to push a hook on a service owned by another module/app. PS Don't know if a client part as mentioned makes sense because most messaging systems already have such client modules, but I probably missed your point. |
Just to let you know I started something here https://github.com/kalisio/feathers-distributed. I actually found https://github.com/dashersw/cote and it looks to be what I was looking for for a while. Started a couple of tests to illustrate the main concepts and it seems to work. Don't know if What is done in the initialization function of the plugin https://github.com/kalisio/feathers-distributed/blob/master/src/index.js is the following:
What is done by overriding
What is done when the app is aware of a new remotely registered service is the following:
To see everything work together look at https://github.com/kalisio/feathers-distributed/blob/master/test/index.test.js. Let me know what you think about it. |
@claustres looks very interesting at first glance |
We are seeking for help to make this production ready https://github.com/kalisio/feathers-distributed, sorry no paid job for now 😉 What we'd like to have first is some feedback on deployment in cloud providers, of course any PR is welcome ! We added an example to make things easier for testing https://github.com/kalisio/feathers-distributed/tree/master/example, it could be easily extended for real apps. Thanks |
Starting working on a FearthersJS-based micro-service architecture I wonder if this module could not be a little bit extended to cover this use case. Indeed it actually already covers two main features IMHO:
It would be pity to develop again this in another module dedicated to micro-services.
So my proposal is to extend this module:
Let me know what you think and If you prefer to keep this module focused. In this case I would do something on my own. Thanks.
The text was updated successfully, but these errors were encountered: