![]() |
VOOZH | about |
dotnet add package Escendit.Extensions.Workflows --version 0.1.0-rc.3
NuGet\Install-Package Escendit.Extensions.Workflows -Version 0.1.0-rc.3
<PackageReference Include="Escendit.Extensions.Workflows" Version="0.1.0-rc.3" />
<PackageVersion Include="Escendit.Extensions.Workflows" Version="0.1.0-rc.3" />Directory.Packages.props
<PackageReference Include="Escendit.Extensions.Workflows" />Project file
paket add Escendit.Extensions.Workflows --version 0.1.0-rc.3
#r "nuget: Escendit.Extensions.Workflows, 0.1.0-rc.3"
#:package Escendit.Extensions.Workflows@0.1.0-rc.3
#addin nuget:?package=Escendit.Extensions.Workflows&version=0.1.0-rc.3&prereleaseInstall as a Cake Addin
#tool nuget:?package=Escendit.Extensions.Workflows&version=0.1.0-rc.3&prereleaseInstall as a Cake Tool
This NuGet package provides a streamlined integration with Temporal.io for .NET applications, offering simplified configuration and dependency injection setup for building robust, distributed workflow applications. It wraps Temporal's .NET SDK with opinionated defaults and convenient extension methods.
Key features:
To install this package, use the NuGet Package Manager Console:
shell PM> Install-Package Escendit.Extensions.Workflows
Or you can search for "Escendit.Extensions.Workflows" in the NuGet Package Manager UI and install it from there.
Register Temporal services in your Program.cs or Startup.cs:
// Add Temporal hosted service with minimal configuration
builder
.Services
.AddTemporalHostedService("<task queue>")
.ConfigureWorkerOptions(builder =>
{
builder
.AddWorkflow<OrderWorkflow>()
.AddActivity<CreateOrderActivity>()
.AddActivity<ProcessOrderActivity>();
});
Configure Temporal with custom settings:
builder
.Services
.AddTemporalHostedService("<task queue>", "<target host>", "<namespace>", "<build id>")
.ConfigureWorkerOptions(builder =>
{
builder
.AddWorkflow<OrderWorkflow>()
.AddActivity<CreateOrderActivity>()
.AddActivity<ProcessOrderActivity>();
});
For multi-tenant applications or multiple Temporal connections:
// Register multiple Temporal clients
builder
.Services
.AddKeyedTemporalClient("<name>", "<target host?>", "<namespace?>");
builder
.Services
.AddKeyedTemporalClient("<name>", "<target host?>", "<namespace?>");
// Use in your services
public class OrderService
{
private readonly ITemporalClient _clientA;
private readonly ITemporalClient _clientB;
public OrderService(
[FromKeyedServices("<name 1>")] ITemporalClient clientA,
[FromKeyedServices("<name 2>")] ITemporalClient clientB)
{
_clientA = clientA;
_clientB = clientB;
}
}
The package uses the following defaults:
| Setting | Default Value | Description |
|---|---|---|
ClientTargetHost |
localhost:7233 |
Temporal server address |
ClientNamespace |
default |
Temporal namespace |
UseWorkerVersioning |
false |
Enable worker versioning (true if buildId provided) |
DataConverter |
System.Text.Json | JSON serialization using System.Text.Json |
Tracing |
Enabled | OpenTelemetry tracing interceptors |
You can further customize the Temporal client after registration:
builder
.Services
.AddTemporalHostedService("<name>")
.ConfigureClientOptions(options =>
{
options.RetryConfig = new RetryConfig { InitialInterval = TimeSpan.FromSeconds(1), MaximumInterval = TimeSpan.FromMinutes(1), BackoffCoefficient = 2.0, MaximumAttempts = 3 };
});
Enable worker versioning for safe deployments:
builder
.Services
.AddTemporalHostedService( "<task queue>", buildId: Environment.GetEnvironmentVariable("BUILD_ID"))
.ConfigureWorkerOptions(builder =>
{
builder
.AddWorkflow<OrderWorkflow>()
.AddActivity<CreateOrderActivity>()
.AddActivity<ProcessOrderActivity>();
});
This package depends on:
Temporalio.Extensions.Hosting - Temporal .NET SDK hosting extensionsTemporalio.Extensions.OpenTelemetry - OpenTelemetry integration for TemporalThese dependencies are automatically installed when you install this package.
If you find a bug or have a feature request, please create an issue in the GitHub repository.
To contribute code, fork the repository and submit a pull request. Please ensure that your code follows the project's coding standards and is thoroughly tested.
Licensed under Apache License 2.0. See the LICENSE file for the complete license text.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-rc.3 | 1,693 | 12/1/2025 |
| 0.1.0-rc.2 | 118 | 11/29/2025 |
| 0.1.0-rc.1 | 695 | 8/19/2025 |