Skip to content

Commit 3d04a45

Browse files
address latest PR feedback
1 parent d12383c commit 3d04a45

File tree

3 files changed

+31
-6
lines changed

3 files changed

+31
-6
lines changed

src/Worker/Grpc/GrpcDurableTaskWorker.Processor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ class Processor
3030
readonly GrpcDurableTaskWorker worker;
3131
readonly TaskHubSidecarServiceClient client;
3232
readonly DurableTaskShimFactory shimFactory;
33-
readonly InternalOptions internalOptions;
33+
readonly GrpcDurableTaskWorkerOptions.InternalOptions internalOptions;
3434

3535
public Processor(GrpcDurableTaskWorker worker, TaskHubSidecarServiceClient client)
3636
{
3737
this.worker = worker;
3838
this.client = client;
3939
this.shimFactory = new DurableTaskShimFactory(this.worker.grpcOptions, this.worker.loggerFactory);
40-
this.internalOptions = this.worker.grpcOptions.InternalOptions;
40+
this.internalOptions = this.worker.grpcOptions.Internal;
4141
}
4242

4343
ILogger Logger => this.worker.logger;

src/Worker/Grpc/GrpcDurableTaskWorkerOptions.cs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,26 @@ public sealed class GrpcDurableTaskWorkerOptions : DurableTaskWorkerOptions
2424
public CallInvoker? CallInvoker { get; set; }
2525

2626
/// <summary>
27-
/// Gets or sets the internal protocol options. These are used to control backend-dependent features.
27+
/// Gets the internal protocol options. These are used to control backend-dependent features.
2828
/// </summary>
29-
internal InternalOptions Internal { get; set; } = new();
29+
internal InternalOptions Internal { get; } = new();
30+
31+
/// <summary>
32+
/// Internal options are not exposed directly, but configurable via <see cref="Internal.InternalOptionsExtensions"/>.
33+
/// </summary>
34+
internal class InternalOptions
35+
{
36+
/// <summary>
37+
/// Gets or sets a value indicating whether entity-related events appearing in orchestration histories should be
38+
/// automatically converted back and forth between the old DT Core representation (JSON-encoded external events)
39+
/// and the new protobuf representation (explicit history events), which is used by the DTS scheduler backend.
40+
/// </summary>
41+
public bool ConvertOrchestrationEntityEvents { get; set; }
42+
43+
/// <summary>
44+
/// Gets or sets a value indicating whether to automatically add entity
45+
/// unlock events into the history when an orchestration terminates while holding an entity lock.
46+
/// </summary>
47+
public bool InsertEntityUnlocksOnCompletion { get; set; }
48+
}
3049
}

src/Worker/Grpc/InternalOptionsExtensions.cs renamed to src/Worker/Grpc/Internal/InternalOptionsExtensions.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,15 @@ public static class InternalOptionsExtensions
1616
/// Configure the worker to use the default settings for connecting to the Azure Managed Durable Task service.
1717
/// </summary>
1818
/// <param name="options">The gRPC worker options.</param>
19+
/// <remarks>
20+
/// This is an internal API that supports the DurableTask infrastructure and not subject to
21+
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
22+
/// any release. You should only use it directly in your code with extreme caution and knowing that
23+
/// doing so can result in application failures when updating to a new DurableTask release.
24+
/// </remarks>
1925
public static void ConfigureForAzureManaged(this GrpcDurableTaskWorkerOptions options)
2026
{
21-
options.InternalOptions.ConvertOrchestrationEntityEvents = true;
22-
options.InternalOptions.InsertEntityUnlocksOnCompletion = true;
27+
options.Internal.ConvertOrchestrationEntityEvents = true;
28+
options.Internal.InsertEntityUnlocksOnCompletion = true;
2329
}
2430
}

0 commit comments

Comments
 (0)