DJ servers can be deployed in complex configurations supporting load-balancing, sharding, and fail-over within and between data-centers. In addition, some aspects of load-balancing require coordination across client applications. For example, affinity and sharding support requires client applications to agree which backend servers master which entries. Until now, support for these features requires multiple complex client + UI changes which rarely keep up with the supported deployment use-cases.
It would be great if we could make it easier for client applications to configure themselves, ideally requiring a minimum amount of UI complexity, doc and user expertise.
Factor out the discovery support implemented in the DJ proxy backend and place it in the SDK where it can be easily used by client applications like this:
Where "rs1" and "rs2" are bootstrap servers from which the rest of the topology can be discovered.