-
Notifications
You must be signed in to change notification settings - Fork 36
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
Provide entity support for direct grpc connections to DTS #369
base: main
Are you sure you want to change the base?
Conversation
…on history events, as used by DTS, and enable entities by default when using DTS backend.
7f3fc0a
to
8db3603
Compare
I am marking this as ready for review now that I have some tests passing. Given that iterations are slow, I want to run a lot more tests before merging though. |
LGTM |
… of failure details
@@ -85,6 +85,12 @@ static void ConfigureSchedulerOptions( | |||
.Configure(additionalConfig ?? (_ => { })) | |||
.ValidateDataAnnotations(); | |||
|
|||
builder.Services.AddOptions<DurableTaskClientOptions>(builder.Name) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there is a builder.Configure(optionsCallback)
overload you can use
/// automatically converted back and forth between the old DT Core representation (JSON-encoded external events) | ||
/// and the new protobuf representation (explicit history events), which is used by the DTS scheduler backend. | ||
/// </summary> | ||
public bool ConvertOrchestrationEntityEvents { get; set; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This value and InsertEntityUnlocksOnCompletion
look like they are more implementation details and not a public API. I would prefer we figure out a way to make these non-public if possible. If this must be public due to different projects, then we should find a way to hide this in an .Internal
namespace and add comments declaring this not meant for public consumption.
Here is an example: https://github.com/microsoft/durabletask-dotnet/blob/main/src/Abstractions/Internal/IOrchestrationSubmitter.cs
One idea would be to make these properties internal
(maybe even in a sub-class to keep them together). Then add an extension method ConfigureForAzureManaged(this GrpcDurableTaskWorkerOptions options)
under Microsoft.DurableTask.Worker.Grpc.Internal
namespace with the comments. Then AzureManaged can call that.
implements the necessary protocol conversions and configurations for providing entity support when connecting a DTS backend directly ("portable SDK").