Winglet.Process
0.1.0
dotnet add package Winglet.Process --version 0.1.0
NuGet\Install-Package Winglet.Process -Version 0.1.0
<PackageReference Include="Winglet.Process" Version="0.1.0" />
<PackageVersion Include="Winglet.Process" Version="0.1.0" />
<PackageReference Include="Winglet.Process" />
paket add Winglet.Process --version 0.1.0
#r "nuget: Winglet.Process, 0.1.0"
#:package Winglet.Process@0.1.0
#addin nuget:?package=Winglet.Process&version=0.1.0
#tool nuget:?package=Winglet.Process&version=0.1.0
Winglet.Process
Winglet.Process is a generic, tenancy-neutral runtime for durable linear application processes.
Definitions are code-defined and immutable after use. A definition is identified by processKey and a positive definitionVersion, and every run remains bound to that exact version. Steps are explicitly User or System; the engine alone owns lifecycle transitions.
var definitions = new ProcessDefinitionRegistry();
definitions.Register(new ProcessDefinition(
"customer.onboarding",
1,
[
new UserProcessStepDefinition("submitted"),
new SystemProcessStepDefinition("validate", new ValidateCustomerStep())
]));
var engine = new ProcessEngine(definitions, processStore, timeProvider);
var run = await engine.StartAsync("customer.onboarding", 1);
The host implements IProcessStore. It owns the database schema, atomic revision transitions, JSON persistence, due-work queries, claim/lease concurrency and recovery. Winglet.Process does not depend on EF Core, ASP.NET Core, authentication, tenancy or a background-job framework.
System steps receive a ProcessSystemStepContext containing the run, current step, exact definition, stable step operationId, TimeProvider and typed JSON read helpers. The operation ID is generated once when a step becomes executable and is reused across retries, resume and crash recovery. Downstream idempotency remains the responsibility of the step/integration.
Retry is explicit and finite through IProcessRetryPolicy. A retry enters retry_wait; workers discover it only after nextAttemptAt. Newly current system steps are durable due work as soon as the state transition is committed. The host owns worker hosting, polling, DI scopes and deployment scaling.
User mutations supply an expected process revision and use the engine guard. Status projection is intentionally narrow and side-effect free. Process data is JSON at the persistence boundary, but application code should use typed DTOs through ProcessJson and the context helpers.
The package is tenancy-neutral. A tenant-aware SharedDatabase host must apply ADR-019 isolation to independently persisted tenant-owned process rows. Process JSON is not a secret store: do not persist passwords, bearer tokens, private keys, credentials or raw authentication material.
V1 deliberately excludes branching, loops, parallel execution, compensation, dynamic or database-defined definitions, generic JSON migration, implicit events/webhooks/email, distributed ACID, a generic scheduler and provider-specific persistence adapters.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 91 | 9/1/2026 |