sebpiq / rhizome

Web server for participative art performances and installations.
GNU General Public License v3.0
164 stars 13 forks source link

Modular architecture #90

Open sebpiq opened 9 years ago

sebpiq commented 9 years ago

Look into using redis for pub/sub instead of the ConnectionManager.

This would allow to scale, and have several rhizome servers communicating together through a queue system.

sebpiq commented 8 years ago

Maybe redis is not the solution : http://stackoverflow.com/questions/1919472/low-latency-large-scale-message-queuing.

sebpiq commented 8 years ago

Or maybe we don't need a separate queue, but rather proxying directly the messages from one server to the next. Each server registers itself to the others, so they can communicate together. Or maybe it could be a setting rhizomeInstances with IPs of all other rhizome servers running ... but in any case, we need a centralized database to save persistent info

kirbysayshi commented 8 years ago

Another option might be the cluster module built into node, and each cluster keeping track of its own connections like now.

sebpiq commented 8 years ago

I don't think this would work. If a client disconnects and reconnects, it might be handled by a different server of the cluster, which doesn't have infos about the connection.

Besides, I want also to be able to run servers on different machines for maximum scalability.

kirbysayshi commented 8 years ago

Cool, the cluster thing was just an off the cuff idea.

sebpiq commented 8 years ago

Now redis persistence is available, which should solve the cluster problem, and allow this to move forward.