New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Configurable deterministic routing #1378
Comments
Keep in mind we need to support the HA setup here.
|
Depends on #1359 |
Goals:We heard from multiple extenders and from core services that they have a case: Joe’s Problems:Load balancing (LB/DLB) I would argue that Rate Limiting, while useful for obvious reasons, should not be part of our MVP. Session based solution:Based on a token that represents client (apiml auth cookie), we can recognize a client and provide deterministic routing. Client based solution:When any client gets routed, we would return (cookie, header) an information, where the request routed to. Benefits: Negatives: Hybrid. . . Deterministic route based on token / ShardingWhen user authenticates for instance, the token will dictate where the users get routed in predictable fashion Positives: Negatives: Considerations:Identifying the user/session: Transferring the session Configuration Transferability of solution to SC Gateway Model rejection strategy Security of headers |
@jandadav the extender has confirmed the client based solution will work for them. |
Proposal for follow-up stories to finish the load balancing implementation Configurable load balancer setup for individual servicesAs a This will mean to implement: Authentication based server side load balancingAs a This will mean to implement: Authentication based distributed server side load balancingAs a This will mean to implement: Spike: Investigate and document performance of deterministic routing in HA setup |
Is your feature request related to a problem? Please describe.
Services want to handle user requests from the same instance of that service, but the gateway only balances workloads in a round robin fashion.
Describe the solution you'd like
Deterministic routing for user requests, where each request with a user ID goes to the same service instance it originally was routed to. Additionally, a configurable limit for the number of users each instance can handle.
MVP
see the outline in the discussion. The following is outdated.
Extensions
Additional context
@DMcKnight
The text was updated successfully, but these errors were encountered: