Open jeffrson opened 7 years ago
@rjrodger Can SenecaJS can do it?
it seems like https://github.com/senecajs/seneca-mesh can achieve the same think - it does give you fully dynamic node discovery.
All nodes are equal, so there's no difference between masters and clients.
The mesh does use "base" nodes for boot strapping, but generally you don't put business logic there.
Hi,
I was searching for "node service discovery" when I found your presentations on Youtube and the projects regarding Seneca. I'm not quite sure if it will suit my (special?) requirements and I would appreciate your opinion/advice very much.
We have a (dated) distributed setup of C++ modules (exe on Windows so far) which we want to rewrite (ideally cross platform) in a NodeJS microservices kind: there are one or more "Master" services, which can be scripted independently (in order to fulfill different tasks) to control between 10 to 400 "system clients". Despite being scripted indiviually all connections adhere to the same protocol. "Master" decides upon schedules or events (motion detection, UI, ...) what the "system clients" should do (high level like playing movies or sound and low level including reboot, shutdown a.s.o.). "System clients" may be connected to every "Master" or (maybe later) to only one distinct "Master" (alternatively it may ignore commands from other "Masters"). There's no guaranteed startup sequence - meaning new "system clients" may come up at any time or a certain "Master" will start and all or only related "system clients" should start using it (register, send events, receive commands).
Our existing setup works with periodical broadcasts from "system clients" to which all "Master" instances reply, but a "system client" may choose which "Master" it connects to. Furthermore, when a "Master" launches, it broadcasts its presence. Alternatively there's a configuration for which server to connect to. Pretty much old-school...
What do you think about it?
One further question - is there a WebSockets transport for Seneca?