Skip to content

Add tags to entity-scheduled orchestration actions - #80

Open
wangbill (YunchuWang) wants to merge 2 commits into
mainfrom
yunchuwang-entity-tags-protocol-pr
Open

wangbill (YunchuWang) wants to merge 2 commits into
mainfrom
yunchuwang-entity-tags-protocol-pr

Conversation

@YunchuWang

@YunchuWang wangbill (YunchuWang) commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

Add tags to entity-scheduled orchestration actions

Allow entity-generated start-new orchestration actions to carry tags, matching the existing tagged orchestration contracts. This is a protocol-only dependency for entity tag propagation, not an end-to-end service fix.

Changes

The aggregate diff is one added line in protos/orchestrator_service.proto: map<string, string> tags = 8 on StartNewOrchestrationAction. Fields 1-7, their types, and every existing oneof remain unchanged. No test, documentation, build, or dependency files are changed in the final PR diff.

Validation

  • Freshly ran the existing session-local validate_entity_tags.py against upstream 882583c1177706e148c3b146d4b2ba1c1d242e4c with grpc_tools.protoc (libprotoc 31.1): all four descriptor/wire checks passed. After removing only the new map field and its synthetic entry, every descriptor is identical; empty maps preserve bytes; populated tags round-trip through entity actions; old-schema readers accept the payload and discarding unknown fields drops the tags. No validation tooling is added to the repository.
  • git diff --check origin/main...HEAD: passed.
  • Verified the canonical proto blob remains 2429fff4696ea9e8615e7f39f8960fcaf7b73a93, identical to the original PR schema. Existing downstream pins therefore remain schema-identical.

Related Issues

Protocol dependency for microsoft/durabletask-dotnet#807.

Compatibility and follow-up

The new map is empty by default and adds no bytes when omitted. Older receivers ignore the unknown field and may discard it; they do not consume the tags. SDK/entity conversion and receiving-service support must be implemented separately.

This PR does not change backend behavior or independently establish Azure tag persistence/search. The PR is now ready for review.

Companion PRs and release order

Companion Role
microsoft/durabletask-protobuf#80 (this PR) Optional native entity-start tags field 8.
Azure/durabletask#1412 Core action property and wrapped-Core tag merging.
microsoft/durabletask-dotnet#812 SDK snapshots and serializes the tags.
Azure/azure-functions-durable-extension#3566 Functions host converts the tags into Core actions.
DTS native backend companion (private/internal PR; link omitted from public GitHub) Consumes native action tags and validates them before native batch side effects.
  1. Merge the canonical protocol contract in Add tags to entity-scheduled orchestration actions #80; there is no new NuGet version to guess for that schema-only change.
  2. Merge and publish the Core prerequisite. Coordinate the approved native DTS backend rollout after the protocol contract; the native backend does not require a new Core package. Deploy compatible receivers before enabling tag-emitting SDK senders.
  3. Only after the Core prerequisite package is actually released, update #812's Core dependency to the real published version, pass normal CI, and release the SDK.
  4. Only after Core and the tag-aware SDK are actually released, update #3566's applicable dependency versions to the real published versions, pass normal CI, and release the Functions extension.

Package dependency versions must be updated after prerequisite release only. Do not commit unpublished .local validation pins, guessed future versions, or validation-only feeds/overrides. Local previews are build-only test inputs. SDK/Functions PRs remain dependency-blocked until the published prerequisite API is available and the later version updates are made; local tests are not a normal-CI or release claim.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3d59e0dc-efdb-4b0a-b588-6dbd83416193
Comment thread README.md Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3d59e0dc-efdb-4b0a-b588-6dbd83416193
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.

1 participant