Nexus.Pipeline.Portal.Infrastructure.Sqlite 1.1.3

dotnet add package Nexus.Pipeline.Portal.Infrastructure.Sqlite --version 1.1.3
                    
NuGet\Install-Package Nexus.Pipeline.Portal.Infrastructure.Sqlite -Version 1.1.3
                    
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="Nexus.Pipeline.Portal.Infrastructure.Sqlite" Version="1.1.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nexus.Pipeline.Portal.Infrastructure.Sqlite" Version="1.1.3" />
                    
Directory.Packages.props
<PackageReference Include="Nexus.Pipeline.Portal.Infrastructure.Sqlite" />
                    
Project file
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 Nexus.Pipeline.Portal.Infrastructure.Sqlite --version 1.1.3
                    
#r "nuget: Nexus.Pipeline.Portal.Infrastructure.Sqlite, 1.1.3"
                    
#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 Nexus.Pipeline.Portal.Infrastructure.Sqlite@1.1.3
                    
#: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=Nexus.Pipeline.Portal.Infrastructure.Sqlite&version=1.1.3
                    
Install as a Cake Addin
#tool nuget:?package=Nexus.Pipeline.Portal.Infrastructure.Sqlite&version=1.1.3
                    
Install as a Cake Tool

Nexus.Pipeline

NuGet version License: MIT .NET Support

Replace scattered if/else and service chains with a clean, observable pipeline — typed steps, structured errors, and automatic saga rollback for .NET 4.6.2 through .NET 10.

Nexus.Pipeline is a typed, in-process execution pipeline library for .NET. You register an ordered sequence of steps on a fluent builder, attach cross-cutting behaviors (logging, retry, timeout, transactions, OpenTelemetry metrics), and execute against a shared IExecutionContext that carries the request, the evolving response, and a per-step execution history. Every execution returns a PipelineResult<TResponse> — structured errors, no exception-based control flow. Supports inline lambda steps and DI-resolved class-based steps interchangeably. Targets .NET 4.6.2 through .NET 10, with AOT and trim compatibility on .NET 8+.


1. Why This Package Exists

Modern .NET applications often implement complex use cases—like checkout flows or user registration—by stuffing logic into massive service classes or MediatR handlers. This approach makes the code difficult to test, hard to observe, and incredibly challenging to roll back if a failure occurs halfway through. Nexus solves this by treating business processes as a pipeline of independent steps. This provides built-in observability, testability, and resilience, ensuring that execution flows are safe and manageable.

2. Key Features

  • Core Pipeline Engine: Build and execute robust, strongly-typed pipelines.
  • Dependency Injection: Seamlessly integrate with Microsoft.Extensions.DependencyInjection.
  • Behaviors (Middleware): Intercept executions with telemetry, transactions, or retries.
  • Compensation (Saga Pattern): Automatically roll back successful steps when a later step fails.
  • Parallel Execution: Fan-out execution across multiple parallel step groups.
  • Validation: Built-in, strongly-typed step validation.
  • Portal & Resumability: Dedicated UI/API to visualize executions, debug failures, and resume stalled workflows exactly where they stopped.

3. Supported Frameworks

Nexus is designed for both modern, high-performance cloud workloads (with full AOT support) and legacy enterprise applications.

Framework Supported AOT / Trimming
.NET 10.0 ✅ Full
.NET 9.0 ✅ Full
.NET 8.0 ✅ Full
.NET 7.0 ✅ None
.NET 6.0 ✅ None
.NET Standard 2.0 ✅ None
.NET Framework 4.6.2 ✅ None

4. Ecosystem & Packages

Nexus is modular. You only install what you need:

  • Nexus.Pipeline - Core engine and behaviors.
  • Nexus.Pipeline.AspNetCore - ASP.NET Core integrations and result mappers.
  • Nexus.Pipeline.Testing - Fluent assertions and fake contexts.
  • Nexus.Pipeline.Portal - The standalone server and web UI for workflow monitoring.
  • Nexus.Pipeline.Portal.Client - gRPC client to send pipeline state to the Portal.
  • Nexus.Pipeline.Portal.Resume - Webhook handlers to resume stalled workflows.

5. Installation

You can install Nexus and its integrations via the .NET CLI:

dotnet add package Nexus.Pipeline
dotnet add package Nexus.Pipeline.AspNetCore
dotnet add package Nexus.Pipeline.Testing
dotnet add package Nexus.Pipeline.Portal
dotnet add package Nexus.Pipeline.Portal.Client
dotnet add package Nexus.Pipeline.Portal.Resume

6. Architecture Overview

Nexus uses a builder pattern to configure a sequence of steps, wraps them in a middleware pipeline (Behaviors), and executes them within a shared, typed ExecutionContext. The DependencyGraph handles topological sorting, while the CompensationEngine provides Saga-like rollback capabilities on failure.

flowchart LR
    Client --> Executor
    Executor --> Behaviors
    Behaviors --> Step1
    Step1 --> Step2
    Step2 --> Result
    Result --> Client

Read the detailed Architecture Overview

7. Core Concepts

Understanding Nexus starts with a few core concepts:

  • PipelineBuilder / ExecutionWorkflow: The fluent API used to construct pipelines.
  • ExecutionContext: The strongly-typed state container passed through all steps.
  • IPipelineStep: The atomic unit of work containing business logic.
  • IPipelineBehavior: Middleware that wraps step execution.
  • PipelineResult: A Railway-Oriented response detailing success or failure.

8. Quick Start

The simplest way to use Nexus is to define a step and execute it using the pipeline builder.

public class RegisterUserRequest { public string Email { get; set; } = string.Empty; }
public class RegisterUserResponse { public string UserId { get; set; } = string.Empty; }

public class CreateUserStep : IPipelineStep<RegisterUserRequest, RegisterUserResponse>
{
    public string StepName => "CreateUser";
    public int Order => 10;

    public async Task<StepOutcome> ExecuteAsync(IExecutionContext<RegisterUserRequest, RegisterUserResponse> context, CancellationToken ct)
    {
        context.Response.UserId = Guid.NewGuid().ToString();
        return StepOutcome.Continue;
    }
}

// In Program.cs
var workflow = ExecutionWorkflow.Define<RegisterUserRequest, RegisterUserResponse>(resolver)
    .Step<CreateUserStep>()
    .Build();

var result = await workflow.ExecuteAsync(new RegisterUserRequest { Email = "test@example.com" });

See the First Project guide

9. Portal & Workflow Resumability

Nexus seamlessly integrates with the Nexus Portal—a dedicated UI and API for monitoring pipelines and recovering from failures. When a pipeline fails (e.g., an external API goes down), the exact request, response, and step history are serialized and pushed to the Portal. From the Portal UI, you can inspect the failure and click Resume.

Hosting the Portal UI/Server

Because the Portal is distributed as a NuGet package (Nexus.Pipeline.Portal), you can easily host it inside an ASP.NET Core application. It provides real-time SignalR dashboards, historical execution browsing, and remote resume triggers.

dotnet add package Nexus.Pipeline.Portal

In your Portal hosting application:

var builder = WebApplication.CreateBuilder(args);

// Add the Portal Server services and configure the database provider (Sqlite/SqlServer)
builder.Services.AddNexusPortalServer(options => 
{
    options.DatabaseProvider = "Sqlite";
    options.ConnectionStrings.DefaultConnection = "Data Source=nexus_portal.db";
});

var app = builder.Build();

// Map the UI and gRPC endpoints
app.UseNexusPortal();
app.Run();

Connecting Your Application to the Portal

In your worker service or API where your pipelines run:

  1. Install Packages: Reference Nexus.Pipeline.Portal.Client and Nexus.Pipeline.Portal.Resume.
  2. Configure DI:
    services.AddNexusPortal(options =>
    {
        options.PortalUrl = "http://nexus-portal:5200"; // Nexus Portal UI/API location
        options.Application = "OrderService";           // Your application name
        options.ActionBaseUrl = "http://my-service";    // Where the Portal sends resume webhooks
        options.OutboxType = NexusOutboxType.InMemory;  // Persistence outbox
    });
    
  3. Handle Resume Webhooks: Implement INexusResumeHandler or inherit from NexusResumeHandlerBase<TReq, TRes> to receive the resume webhook from the Portal and re-trigger your pipeline with the original CorrelationId. The ResumePreparationBehavior automatically skips previously successful steps and resumes exactly where the failure occurred.

Read the full Portal Integration guide or Portal Architecture.

10. Complete Features Matrix

Feature Description Documentation
Core Pipeline Engine The fundamental execution engine. docs/Features/01_CorePipeline.md
Pipeline Engine Execution lifecycle and internal flow. docs/Features/PipelineEngine.md
Dependency Injection Deep integration with IServiceCollection. docs/Features/02_DependencyInjection.md
Behaviors Middleware to wrap pipeline execution. docs/Features/03_Behaviors.md
Behaviors (Details) Detailed behavior API and configuration. docs/Features/Behaviors.md
Compensation (Sagas) Built-in undo logic for failed pipelines. docs/Features/04_Compensation.md
Compensation (Details) Saga pattern and rollback execution. docs/Features/Compensation.md
Conditional Branching Execute steps based on state predicates. docs/Features/05_ConditionalBranching.md
Control Flow Managing branches and pipeline halting. docs/Features/ControlFlow.md
Parallel Execution Run steps concurrently in groups. docs/Features/06_ParallelExecution.md
Validation Strongly-typed step request validation. docs/Features/07_Validation.md
Error Handling Detailed PipelineError configurations. docs/Features/ErrorHandling.md
Portal Integration External portal for workflow resumability. docs/Features/PortalIntegration.md
Portal Hosting Standalone UI/Server configuration. docs/Features/PortalHosting.md
Step Types Overview of supported step contracts. docs/Features/StepTypes.md
Tooling Analyzers and Source Generators. docs/Features/Tooling.md

11. Examples

Example Description Documentation
Basic Usage Minimal setup without Dependency Injection docs/Examples/01_BasicUsage.md
ASP.NET Core Integration Using Nexus with minimal APIs docs/Examples/02_AspNetCoreIntegration.md
Beginner A simple checkout pipeline docs/Examples/Beginner.md
Intermediate Using conditional logic and behaviors docs/Examples/Intermediate.md
Advanced (Sagas) Full saga compensation with rollback docs/Examples/Advanced.md

12. Documentation Map

13. Best Practices

To get the most out of Nexus, keep steps small and focused on a single responsibility. Prefer using IPipelineBehavior for cross-cutting concerns (like logging or database transactions) instead of embedding them in individual steps. Always implement ICompensatableStep for operations that alter persistent state to ensure safety. For more details on designing flows, check the Architecture Overview.

14. Troubleshooting

If you encounter issues such as steps executing out of order, ensure you have correctly declared step dependencies using the explicit graph declarations or fluent builder. For missing dependency injection errors, verify that services.AddNexusPipeline() is called and all your steps are registered.

See the Error Handling documentation for more details.

15. Contributing

We welcome contributions! Please review the CONTRIBUTING.md guide before opening issues or submitting pull requests.

16. License

This project is licensed under the terms of the LICENSE.txt file in the repository root.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.1.3 143 6/10/2026