Skip to content

Conversation

@bachuv
Copy link
Collaborator

@bachuv bachuv commented Oct 16, 2025

This PR adds a .NET Isolated Durable Entities sample which uses Durable Functions v3. The current samples use Durable Functions v2.

Pull request checklist

  • My changes do not require documentation changes
    • Otherwise: Documentation PR is ready to merge and referenced in pending_docs.md
  • 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
  • I have added all required tests (Unit tests, E2E tests)
  • My changes do not require any extra work to be leveraged by OutOfProc SDKs
    • Otherwise: That work is being tracked here: #issue_or_pr_in_each_sdk
  • My changes do not change the version of the WebJobs.Extensions.DurableTask package
    • Otherwise: major or minor version updates are reflected in /src/Worker.Extensions.DurableTask/AssemblyInfo.cs
  • My changes do not add EventIds to our EventSource logs
    • Otherwise: Ensure the EventIds are within the supported range in our existing Windows infrastructure. You may validate this with a deployed app's telemetry. You may also extend the range by completing a PR such as this one.
  • My changes should be added to v2.x branch.
    • Otherwise: This change applies exclusively to WebJobs.Extensions.DurableTask v3.x. It will be retained only in the dev and main branches and will not be merged into the v2.x branch.

@bachuv bachuv requested a review from lilyjma October 16, 2025 18:04
@andystaples
Copy link
Collaborator

@bachuv I just merged the latest from dev back into this branch. Can you please update this new sample to be consistent with the changes I made to the other samples yesterday - this will include adding your sample project to the Samples.sln in /samples directory and ensuring that the sample project compiles using the new CPM settings. Thanks

Comment on lines +13 to +19
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" VersionOverride="2.23.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker" VersionOverride="2.1.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.ApplicationInsights" VersionOverride="2.0.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.DurableTask" VersionOverride="1.6.1" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" VersionOverride="3.3.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" VersionOverride="2.0.2" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" VersionOverride="2.0.5" />
Copy link
Collaborator

Choose a reason for hiding this comment

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

If possible, can we remove VersionOverride here and just update the relevant versions in /samples/Packages.Directory.props? The Samples.sln should ensure that all .NET samples compile with the changes. Hopefully everything just works, but If this breaks the other tests, VersionOverride should be fine for now

@lilyjma
Copy link
Contributor

lilyjma commented Dec 3, 2025

@bachuv - Thanks for updating the entities sample! I was able to run the sample locally. Noticed a few things -

  • It's missing local.settings.json (it's probably in gitignore). Let's just add that and push it out because it's needed to run the sample locally (for customers it's not obvious that it's needed/they need to manually add it with the right content if we don't provide it)
  • Querying the chirps of a user returns nothing

For example, I added 3 chrips to Alice and expecting the GET request to return them, but it returned nothing
curl -d "Alice's first message" http://localhost:7071/api/user/alice/chirps -H Content-Type:application/text
{"UserId":"alice","Timestamp":"2025-12-03T06:21:47.659272Z","Content":"Alice\u0027s first message"}%
lily@MacBookPro Chirper % curl -d "Alice's second message" http://localhost:7071/api/user/alice/chirps -H Content-Type:application/text
{"UserId":"alice","Timestamp":"2025-12-03T06:21:54.124104Z","Content":"Alice\u0027s second message"}%
lily@MacBookPro Chirper % curl -d "Alice's third message" http://localhost:7071/api/user/alice/chirps -H Content-Type:application/text
{"UserId":"alice","Timestamp":"2025-12-03T06:21:58.108401Z","Content":"Alice\u0027s third message"}%
lily@MacBookPro Chirper % curl http://localhost:7071/user/alice/chirps <===== nothing was returned

  • Querying for timeline (like curl http://localhost:7071/api/user/doris/timeline) returns the result of orchestration, not the timeline directly. You'd need to go to the getStatusQueryURI to get the timeline. If we can only return the orchestration result, we should add a quick sentence about going to the getStatusQueryURI to get the timeline in the README.

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.

4 participants