Replies: 1 comment
-
I think we should optimize the API for the most common use-case, which in my opinion is the following order (starting from most common):
I feel like 1 will be 90% of the cases, and 2 will probably be at least twice as common as 3. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Background
In the proposed CRD-based management, load-balancing policies are defined as a field in the
Spec
of theImport
CRD. The rational here is to allow assigning a load-balancing scheme to each remote service separately, which makes a lot of sense, because remote services are deployed differently and exhibit various performance patterns.The field type is currently undefined.
In this discussion we would like to decide:
Import
the right place to define load-balancing schemes? Another option would be a dedicated load-balancing policy, as we have today.Import
, what should be the type of the field? A simple string? a map from client-name to a scheme? A more complex type?Note that if we choose to define the load-balancing scheme inside
Import
and use just a simple string, we lose the ability to set the scheme based on the requesting client. This might be important, as demonstrated by the following use-case.A possible use-case for setting a per-client scheme
We have two clients:
If we have a per-client scheme, we may allow the high-priority client to access the high-availability remote services, while the low-priority client can always access the same low-latency peer.
This use-case hints towards a need for a load-balancing policy to assign the load-balancing scheme to a <client, service> pair, based on their attributes. We don't really want to handle a herd of clients by specifying their names (as if they were pets).
Additional things to consider
Beta Was this translation helpful? Give feedback.
All reactions