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

Assignees

No one assigned

    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