Skip to content

Add on-demand sandbox activity protos#74

Open
YunchuWang wants to merge 9 commits into
mainfrom
wangbill/on-demand-sandbox-protobuf
Open

Add on-demand sandbox activity protos#74
YunchuWang wants to merge 9 commits into
mainfrom
wangbill/on-demand-sandbox-protobuf

Conversation

@YunchuWang

@YunchuWang YunchuWang commented Jun 10, 2026

Copy link
Copy Markdown
Member

The scenario

Durable Task Scheduler needs a shared protobuf contract for sandbox activity workers.

The contract covers two related moments:

  1. A client declares that certain activity names should run in a sandbox worker profile, including the container image, provider kind, resource settings, identities, environment variables, and concurrency.
  2. A live sandbox worker connects back to DTS, tells the service which declared activities it registered, and sends activity-capacity heartbeats while it processes work.

The .NET and Python preview SDKs both depend on this contract, so the names in the proto become the vocabulary reviewers and SDK users see everywhere else.

What's missing

The first version still used on_demand_sandbox naming and a substrate field name.

That made the contract feel tied to an implementation detail instead of the customer-facing sandbox worker model. It also forced downstream SDKs to either expose the same awkward names or carry translation layers around them.

Review feedback settled on the clearer vocabulary: the service is about sandbox activities, and the provider selector should be named SandboxProviderKind with field name sandbox_provider.

The change

The protobuf surface is renamed around the sandbox worker model.

A good review path is:

  1. Start with protos/sandbox_service.proto. This is the source-of-truth contract: package microsoft.durabletask.sandboxes, service SandboxActivities, and enum SandboxProviderKind.
  2. Check the request/response messages around declarations. They keep the same product concepts: activity name, worker profile, image, resources, identity, environment variables, and concurrency.
  3. Check the worker stream messages. SandboxActivityWorkerStart now carries sandbox_provider, and the rest of the stream still covers worker registration, heartbeat capacity, and responses from DTS.

The old on_demand_sandbox_activities_service.proto surface is replaced by sandbox_service.proto so downstream SDKs can generate and expose the same Sandbox* vocabulary.

Adds the on-demand sandbox activity service proto and the scheduler managed identity fields needed by the preview SDK work.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread protos/on_demand_sandbox_activities_service.proto Outdated
Removes the unused GetWorkItemsRequest.worker_instance_id field and the stale reserved name from the on-demand sandbox worker start message.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread protos/on_demand_sandbox_activities_service.proto Outdated
YunchuWang and others added 2 commits June 10, 2026 09:36
Removes the unused reserved field number from the new on-demand sandbox worker start message.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread protos/on_demand_sandbox_activities_service.proto Outdated
Comment thread protos/on_demand_sandbox_activities_service.proto Outdated
@YunchuWang YunchuWang requested a review from cgillum June 12, 2026 15:55

@halspang halspang left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some nits and some questions that may be more about the actual feature instead of this proto directly.

Comment thread protos/durable-task-scheduler/sandbox_service.proto Outdated
Comment thread protos/durable-task-scheduler/sandbox_service.proto Outdated
Comment thread protos/durable-task-scheduler/sandbox_service.proto Outdated
Comment thread protos/durable-task-scheduler/sandbox_service.proto Outdated
Comment thread protos/durable-task-scheduler/sandbox_service.proto Outdated
Comment thread protos/durable-task-scheduler/sandbox_service.proto Outdated
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