Skip to content

[Draft] Support Multiple Backends in Proxy Mode#1440

Draft
fred-maussion wants to merge 9 commits intoelastic:mainfrom
fred-maussion:multi_proxy_mode
Draft

[Draft] Support Multiple Backends in Proxy Mode#1440
fred-maussion wants to merge 9 commits intoelastic:mainfrom
fred-maussion:multi_proxy_mode

Conversation

@fred-maussion
Copy link
Contributor

This PR introduces the initial implementation for evolving proxymode to support fetching from multiple, parallel backends. The goal is to enable a highly-available and federated architecture, as presented in issue #1439.

This is a draft PR to gather early feedback on the core architectural changes.

Changes included in this draft:

  • The configuration (ProxyOptions) is updated to accept a list of backend URLs with optional priorities.
  • The core fetching logic (Search, Categories, Package) is refactored to query all backends in parallel using a fan-out/fan-in concurrency pattern.
  • A shared, instrumented http.Transport is used for efficient connection pooling, while a new retryablehttp.Client is created per-request to correctly handle state (timeouts, retries, logging context).

Next Steps / To-Do:

  • Add unit and integration tests for the new concurrency model.

Seeking feedback on the overall approach to parallel fetching and configuration parsing.

@fred-maussion fred-maussion requested a review from a team as a code owner September 26, 2025 09:08
@prodsecmachine
Copy link

prodsecmachine commented Sep 26, 2025

🎉 Snyk checks have passed. No issues have been found so far.

security/snyk check is complete. No issues have been found. (View Details)

license/snyk check is complete. No issues have been found. (View Details)

@fred-maussion fred-maussion marked this pull request as draft September 26, 2025 09:09
@elasticmachine
Copy link

elasticmachine commented Sep 26, 2025

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants