Skip to content

Conversation

surgupta-msft
Copy link
Contributor

@surgupta-msft surgupta-msft commented Aug 19, 2025

Issue describing the changes in this PR

resolves #10944

Validation

E2E scenarios have been validated as outlined in the doc. We can run another round of E2E validations if there are significant changes in the code. Otherwise, these are not required for general changes and tests in the PR are sufficient.

  • Update 9/22 - Ran another round of E2E validations
  • Update 9/8 - Ran another round of E2E validations till commit id - c8982d0

Gists

A lot of code has been moved from RPCWorkerConfigFactory to WorkerConfigurationHelper so it can be shared by 2 resolvers. Adding below gists help with the review. Most of it is just refactoring and no logic changes.

Pull request checklist

IMPORTANT: Currently, changes must be backported to the in-proc branch to be included in Core Tools and non-Flex deployments.

  • Backporting to the in-proc branch is not required
    • Otherwise: Link to backporting PR
  • My changes do not require documentation changes
    • Otherwise: Documentation issue linked to PR
  • My changes should not be added to the release notes for the next release
    • Otherwise: I've added my notes to release_notes.md
  • My changes do not need to be backported to a previous version
    • Otherwise: Backport tracked by issue/PR #issue_or_pr
  • My changes do not require diagnostic events changes
    • Otherwise: I have added/updated all related diagnostic events and their documentation (Documentation issue linked to PR)
  • I have added all required tests (Unit tests, E2E tests)

Additional information

This pull request introduces changes to decouple language workers from the Host release and enable dynamic worker resolution.

Backlog issues - Link
Design doc - Link

Flows covered in this PR -

  1. Resolving Worker Configurations -
    • Introduced DynamicWorkerConfigurationResolver, which dynamically resolves worker configurations based on -
      • Environment settings and probing paths
      • Host-Worker compatibility check
      • Leveraging Release channel concept to point to a previous version of the worker
      • Fallback to the old flow if worker is not found at the probing path level
      • Ignoring versions of a worker specified via Hosting config
  2. RPCWorkerConfigFactory -
    • Moved some methods to WorkerConfigurationHelper.cs to enable reusing of workers profile evaluation logic between 2 resolvers.
  3. Environment Updates -
    • Added a new feature flag FeatureFlagDisableWorkerProbingPaths to disable dynamic resolution feature by users.
    • Added 2 Hosting config settings
      • To get list of workers available for resolution.
      • To get list of workers versions to be ignored.
  4. WorkerConfigurationResolverOptionsSetup -
    • Configures WorkerConfigurationResolverOptions by getting required values from IConfiguration and IEnvironment such as worker probing paths, release channel, workers available for resolution via hosting config.

Note: The decoupling workers flow is disabled by default in this PR. The flow can be enabled by setting the Hosting config which will be done after completing other relevant backlog items.

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.

Implement changes needed in the Host to decouple workers from the Host release

6 participants