Asynkron.DurableFunctions
0.0.5
dotnet add package Asynkron.DurableFunctions --version 0.0.5
NuGet\Install-Package Asynkron.DurableFunctions -Version 0.0.5
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Asynkron.DurableFunctions" Version="0.0.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Asynkron.DurableFunctions" Version="0.0.5" />
<PackageReference Include="Asynkron.DurableFunctions" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Asynkron.DurableFunctions --version 0.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Asynkron.DurableFunctions, 0.0.5"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Asynkron.DurableFunctions@0.0.5
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Asynkron.DurableFunctions&version=0.0.5
#tool nuget:?package=Asynkron.DurableFunctions&version=0.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Asynkron.DurableFunctions Library
This library provides an independent durable orchestration framework inspired by orchestration concepts but with our own unique API design. This is not a drop-in replacement for any other framework - it's our own project with our own ideas.
Features
Attributes
FunctionAttribute
- Specifies the name of a functionOrchestrationTriggerAttribute
- Specifies that a parameter should be treated as an orchestration trigger
Interfaces
IDurableOrchestrationContext
- Defines the interface for a durable orchestration context with our **CallFunction ** API
Context Methods
The IDurableOrchestrationContext
provides the following methods:
CallFunction<TResult>(string name, object? input = null)
- THE way to call any function asynchronously with a return valueCreateTimer(DateTime fireAt)
- Creates a timer that expires at the specified timeWaitForExternalEvent<TResult>(string name)
- Waits for an external event to be raised (each wait consumes a single queued event; repeated waits require repeatedRaiseEventAsync
calls)
Properties
InstanceId
- Gets the instance ID of the orchestrationCurrentUtcDateTime
- Gets the current date and time in UTCIsReplaying
- Gets a value indicating whether the orchestration is replaying
Usage Example
using Asynkron.DurableFunctions;
public class MyOrchestrator
{
[Function("MyOrchestrator")]
public async Task<string> RunOrchestrator([OrchestrationTrigger] IDurableOrchestrationContext context)
{
// Use CallFunction - THE way to invoke functions in our framework
var result = await context.CallFunction<string>("MyFunction", "input data");
return result;
}
[Function("MyFunction")]
public string MyFunction(string input)
{
return $"Processed: {input}";
}
}
Current Status
This library provides a complete orchestration runtime with:
- ✅ Full orchestration engine
- ✅ Function discovery and invocation via CallFunction
- ✅ State persistence and replay logic
- ✅ Timer management
- ✅ External event handling
- ✅ Multiple storage backend support
Our Independent API
CallFunction is the cornerstone of our API design:
- Clean, simple method name
- Consistent across all function types
- No confusion about "activities" vs "functions"
- Our design, our decision
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.Data.Sqlite (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Logging (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Logging.Console (>= 8.0.0)
- Npgsql (>= 8.0.3)
- System.Diagnostics.DiagnosticSource (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.