Skip to content

Implement hash-based routing as a per-route load balancing Algorithm in gorouter #505

@Soha-Albaghdady

Description

@Soha-Albaghdady

Proposed Change

As a CF app developer,
I want to leverage hash-based routing in my application scenarios,
So that incoming traffic can be efficiently distributed across various instances based on predefined hash values, ensuring optimal performance and reliability.

In n RFC-0042 "Implementing a Hash-Based Load Balancing Algorithm for CF Routing" we decided to introduce hash-based routing as a load balancing algorithm to be used on a per-route basis. This approach involves the Gorouter using the hash of a request header to make routing decisions. The focus is on distributing users across instances instead of individual requests.

Acceptance criteria

  • Gorouter can parse the new fields containing the per-route options related to hash-routing
  • Gorouter can calculate a hash based on the header
  • Gorouter can apply the new load-balancing algorithm to make routing decisions for routes that provide fields related to the hash-routing
  • Gorouter can assess the current number of in-flight requests across all application instances and ensure the balance factor is not exceeded before routing to an instance
  • Gorouter should not incur any performance impact when no application use hash-routing

Related links

No response

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status

Inbox

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions