WorkflowForge.Extensions.Persistence
1.0.0
dotnet add package WorkflowForge.Extensions.Persistence --version 1.0.0
NuGet\Install-Package WorkflowForge.Extensions.Persistence -Version 1.0.0
<PackageReference Include="WorkflowForge.Extensions.Persistence" Version="1.0.0" />
<PackageVersion Include="WorkflowForge.Extensions.Persistence" Version="1.0.0" />
<PackageReference Include="WorkflowForge.Extensions.Persistence" />
paket add WorkflowForge.Extensions.Persistence --version 1.0.0
#r "nuget: WorkflowForge.Extensions.Persistence, 1.0.0"
#:package WorkflowForge.Extensions.Persistence@1.0.0
#addin nuget:?package=WorkflowForge.Extensions.Persistence&version=1.0.0
#tool nuget:?package=WorkflowForge.Extensions.Persistence&version=1.0.0
WorkflowForge Persistence Extension (Bring Your Own Storage)
Add resumable workflows to WorkflowForge via a pluggable provider without introducing external dependencies. You implement storage; we provide the middleware and hooks.
Quick start
- Implement the provider interface
using System;
using System.Threading;
using System.Threading.Tasks;
using WorkflowForge.Persistence;
public sealed class MyPersistenceProvider : IWorkflowPersistenceProvider
{
public Task SaveAsync(WorkflowExecutionSnapshot snapshot, CancellationToken ct = default)
{
// Serialize and save to your storage
return Task.CompletedTask;
}
public Task<WorkflowExecutionSnapshot?> TryLoadAsync(Guid foundryExecutionId, Guid workflowId, CancellationToken ct = default)
{
// Load and deserialize snapshot if present
return Task.FromResult<WorkflowExecutionSnapshot?>(null);
}
public Task DeleteAsync(Guid foundryExecutionId, Guid workflowId, CancellationToken ct = default)
{
// Remove snapshot when workflow completes
return Task.CompletedTask;
}
}
- Enable persistence
using WorkflowForge;
using WorkflowForge.Extensions; // UsePersistence extension
var foundry = WorkflowForge.CreateFoundry("OrderWorkflow");
foundry.UsePersistence(new MyPersistenceProvider());
// For cross-process resume, pass stable keys via options and use a shared provider (e.g., DB/cache)
foundry.UsePersistence(new MyPersistenceProvider(), new PersistenceOptions
{
InstanceId = "order-service-west-1",
WorkflowKey = "ProcessOrder-v1"
});
How it works
- After each operation completes, a snapshot is saved with the next operation index and foundry properties.
- On resume, properties are restored once and already-completed operations are skipped.
- When the last operation completes, the snapshot is deleted.
Notes
- The extension is zero-dependency; you bring the storage and serialization.
- Snapshots store only what you put in foundry
Properties
. Keep payloads minimal. - To resume across processes or after restarts, use a provider backed by shared storage and provide stable keys via
PersistenceOptions
.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- WorkflowForge (>= 1.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on WorkflowForge.Extensions.Persistence:
Package | Downloads |
---|---|
WorkflowForge.Extensions.Persistence.Recovery
Recovery orchestration for WorkflowForge persistence: resume workflows from last checkpoints, with configurable retry and hooks. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 110 | 8/9/2025 |
Initial release v1.0.0:
- Pluggable persistence provider for checkpoints and resume
- Stable key support via PersistenceOptions for cross-process resume
- Sample provider and documentation included