From f0ecbc5ba619329a9019945a2c2ab68d21697d27 Mon Sep 17 00:00:00 2001 From: wangbill Date: Thu, 23 Jul 2026 13:08:11 -0700 Subject: [PATCH] docs(durable-functions): mark v3 entity-lock API as won't-restore (#317) The core `context.entities.*` lock API is the permanent replacement. Flip the README migration note from "restoring ... is tracked in #317" to a final "will not be restored" decision. Rationale (recorded on #317): the Python SDK ships only the core-native lock API and its classic Functions SDK never exposed df.lock/is_locked, so there is no compat surface to mirror; JS is the outlier because v3 uniquely exposed it, and reviving the v3 shape would require an engine-level Task.map (determinism-sensitive). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d86f5f69-4e1a-4c1d-b017-5e290c85cc05 --- packages/azure-functions-durable/README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/azure-functions-durable/README.md b/packages/azure-functions-durable/README.md index d45ea14d..afe80f44 100644 --- a/packages/azure-functions-durable/README.md +++ b/packages/azure-functions-durable/README.md @@ -42,8 +42,11 @@ changed: `context.df.isLocked()` and the `DurableLock` / `LockState` / `LockingRulesViolationError` exports are removed. Acquire locks with the core `context.entities.lockEntities(...entityIds)` (returns a `LockHandle` — call `release()`, ideally in a `finally`) and query with - `context.entities.isInCriticalSection()`. Restoring the v3 `df.lock` / `isLocked` surface is tracked - in [#317](https://github.com/microsoft/durabletask-js/issues/317). + `context.entities.isInCriticalSection()`. This is the permanent, supported API — the v3 `df.lock` / + `isLocked` surface (and the `DurableLock` / `LockState` / `LockingRulesViolationError` types) will + **not** be restored; use the core `context.entities.*` lock API instead. See + [#317](https://github.com/microsoft/durabletask-js/issues/317) for the cross-SDK rationale (the + Python SDK ships only this core-native lock API and never exposed a `df.lock` / `is_locked` surface). - **`context.df.callHttp(...)` now throws.** v3 ran durable HTTP as a host-managed activity; the consolidated gRPC backend has no equivalent primitive. Implement an HTTP activity in your app and call it from the orchestrator. Restoring `callHttp` as a worker-side durable activity is tracked in