unyt-org / uix

The UIX Framework
https://uix.unyt.org
MIT License
54 stars 3 forks source link

Support for Redundancy, Mirroring and Load Balancing #134

Open asbng opened 4 months ago

asbng commented 4 months ago

⭐ Suggestion

At the moment, DATEX and UIX assume a typical layout of many clients connected to a single backend instance.

This is a high-level enhancement request to integrate support for multiple instances of the same backend into UIX and DATEX.

📃 Motivating Example

There are at least three significant use cases:

  1. Redundancy - In a multi-instance backend scenario, one failing backend could be compensated by another instance. For an already running client, DATEX Core would have to detect network failure and perform turnover to another backend instance.
  2. Mirroring - Especially in the case of a fixed number of backend instances (e.g. 2), some could be used for normal operations while DATEX Core would also mirror all data changes to the other instances (including eternal pointers). Together with Redundancy, stateful turnover could be performed in the case of one instance failing.
  3. Load Balancing - With multiple backend instances, new clients could be directed to one of the instances to balance the load.