-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Durable Entities #19
Comments
Have you planned schedule for this yet? Interested, because without this we cannot upgrade at all. It's a bottleneck for going forward with our NET 7 upgrade altogether, because it doesn't have in-proc support. |
Appreciate the work the team is investing into this. <3 Just wanted to echo @AlexEngblom as we too are bottlenecked with our overall solution being unable to migrate to NET 7 due to lack of support for Durable Entities. You may not/can not share the information which I can understand, but if you do have the information at hand, we would love to know if this is something we could potentially expect in the near future or something likely we would wait for NET 8 LTS for? This helps tremendously with internal planning and other streams of work internally for us. |
Adding @AnatoliB, @lilyjma, and @sebastianburckhardt We've gotten a lot of feedback about this as a blocker for upgrading to the .NET Isolated worker, which we take very seriously. The team is currently working on a plan for when we think we can deliver this. Apologies for the lack of clarity here! |
@cgillum I know y'all are working hard on Durable Entities, but is there any way to get some guidance from Microsoft on when this may available? (Even roughly like, don't expect it at .NET 8 release.) Also, I was reading over the ongoing PRs and with the new abstractions, will this require a rewrite of our Durable Entities, or is the expectation that minimal porting will be required? |
@kirk-marple: I'll defer to @lilyjma on the final word, but my understanding is that we're shooting to have this released more or less in the 2nd week of October, if everything goes according to plan.
I'll have to defer to @jviau for that. |
@kirk-marple the functionality should be very close, but some code changes will be required. It will be about equivalent to the porting needed for orchestrations. |
@jviau , |
AOT is not in the scope of durable functions, especially not in this work item. AOT is still being investigated / worked on for the dotnet isolated worker library, any issues/updates on that would be in that repo: https://github.com/Azure/azure-functions-dotnet-worker |
@jviau , |
Hey All, Any further updates on when Durable entities will be available in isolated model? |
Public preview is now available for durable entities: https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.1.0-preview.2 |
@jviau tested and works :) Thanks |
Hi all, we announced GA for Durable entities in .NET isolated recently! package: https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.1.0 closing this issue. |
I'm still missing the functionality to access durable entities through interfaces as described here: https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-dotnet-entities?pivots=in-proc#accessing-entities-through-interfaces
Is this functionality coming to the new packages or do we have to implement this ourselves? |
Do we have any replacement for IDurableActivityContext? |
Echoing this! Disappointing to hear this is now GA but does not have feature parity still. Is there any indication from the team if these are being looked at in the near future or not something we can expect to see for weeks/months/years? There is now a large amount of technical debt we now have across multiple projects/customers that would require rework with this being implemented! |
@prashantagrawalcrowe - There's no equivalent for that in the isolated model, please see this table for API changes. |
@rlucassen @wahyuen - Noted. Reopening this issue to keep track of this. We're committed to bring full parity to the isolated model - will keep you posted on the timeline. |
@rlucassen, @wahyuen entity proxies are not planned in the isolated model. We have already dropped support for interface-based activity proxies in the isolated SDK. We will evaluate introducing an alternative way for strong-typing of entity calls, but it most likely will not be the proxy approach. |
@prashantagrawalcrowe we do have |
For entity proxies, you can also author your own. This sample uses primary ctors from C# 12: public interface ICounter
{
Task<int> Add(int amount);
}
public class CounterProxy(TaskEntityOrchestrationFeature feature, string key) : ICounter
{
private readonly EntityInstanceId _id = new("counter", key);
public Task<int> Add(int amount) => feature.CallEntityAsync<int>(_id, "add", amount);
}
// code in orchestration:
ICounter proxy = new CounterProxy(context.Entities, "__id__");
int count = await proxy.Add(amount); |
Opened #252 to discuss a strong typed entity invocation feature. Going to reclose this issue. |
@jviau whilst I understand this is completely the teams call in terms of what is and is not supported, it would have been nice if this was communicated that the support for interfaces was going away for durable entities. We as consumers of this product only have the available documentation and guidance that the team gives, noting that this is what is currently documented for the in process model.
Note the recommended practice in the above statement! We now have a large code base across multiple projects with technical debt hanging over to migrate away from what we have written for Durable Entities. The work isn't so much of the issue, we just need to dedicate time/resources to it....the hope of the feedback here is that we were not TOLD this was going to be an issue. Given some of us have waited multiple iterations of .NET releases and being told support for durable entities would be coming .NET8 there has been a lot of expectation setting and preparation that many of us know we have to do...this unfortunately, is very last-minute spanner to throw into the works. |
Thanks for your feedback @wahyuen. We acknowledge that the design plan for Entities in .NET isolated was not communicated as clearly as it should be. Proxies (or a strongly typed interface more generally) are an important part of existing .NET in-process solutions that use entities, so we definitely want some kind of equivalent in the isolated model, or at the very least updated guidance. This issue is about Entities in general, so we've started another |
I think DurableEntities are not full supported yet for isolated mode.
The visual studio suggestion is to add I'm using:
|
@jrichardsz - for .NET isolated, that type should be You can find .NET isolated entity templates here: https://github.com/microsoft/durabletask-dotnet/blob/main/samples/AzureFunctionsApp/Entities/Counter.cs |
Thank you David. I will review the DurableTaskClient. |
Tasks
The text was updated successfully, but these errors were encountered: