Skip to content

Proxy client serializes requests on a single connection (no concurrency) #118

Description

@ameba23

This is a performance issue, and a proposed enhancement to increase throughput.

Problem

ProxyClient::new_with_inner forwards all incoming requests through a single sender in a single async loop. Each request awaits sender.send_request(req) before the next is handled, which serializes all proxy traffic.

Impact

  • Throughput is capped by per‑request round‑trip time.
  • Head‑of‑line blocking under concurrency.
  • Even with HTTP/2 negotiated, the implementation does not drive multiplexed concurrency.

Suggested fix

Enable concurrent sending:

  • For HTTP/2, clone the sender and dispatch requests concurrently (bounded).
  • For HTTP/1, consider multiple outbound connections or a small pool to parallelize.
  • Keep a per‑connection concurrency limit to avoid overload.

Acceptance criteria

  • Multiple concurrent inbound requests do not block each other.
  • Throughput increases in a concurrent load test (e.g., 50–200 in‑flight requests).
  • No regression in response integrity or attestation metadata injection.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions