Dnp Workflow Engine · a Workflow Engine for .NET
A durable Workflow Engine for .NET
The Dnp Workflow Engine runs long-lived business processes and workflow automation inside your own C# services and ASP.NET Core hosts. Workflows are defined in JSON and built from plugin steps you write. The engine saves state after every step, so a run that is interrupted resumes where it stopped.
Workflow Studio, the web app that comes with it, is a visual workflow designer and monitoring console: watch every instance and its history, work through human tasks and schedules, and design workflows on a drag-and-drop canvas.
What the Workflow Engine does
Everything a long-running business process needs, as building blocks you combine in a JSON workflow definition.
JSON workflow definitions
Linear workflows (ordered steps) or state machines (states and transitions). Every definition is versioned, and you promote a staging version to production.
Plugin steps in C#
Write a step as a plugin. The engine discovers it in a plugins folder or in your own assembly, and the designer offers it on the palette.
Control flow
If and Switch (with regex and glob matching), While and Do-while loops, Parallel branches, durable batched ParallelForEach, and child workflows.
Waiting for people and events
Delay timers, wait-for-signal, and human tasks that are assigned and completed by people. A suspended workflow resumes when its event arrives.
Resilience
Retry with backoff and jitter, try/catch, and HTTP calls with Polly retry, circuit breaker, timeout, bulkhead and fallback policies.
Durable state and history
State is saved after every step. An append-only event history per instance, crash recovery of orphaned runs, and fencing of concurrent writers.
Rules engine
Business rules in C#, compiled with Roslyn and evaluated against the workflow's data, with named rules stored in the database.
Schedules and triggers
Cron-based recurring schedules, and workflows started by RabbitMQ or Amazon SQS messages.
Namespaces and metrics
Isolate instances, tasks, schedules and search per namespace, with retention. Emit counters and histograms through System.Diagnostics.Metrics.
Workflow Studio: design and monitor workflows in the browser
A signed-in web app for developers and operators, built on the same engine.
Visual workflow designer
Drag built-in activities and your plugin steps onto a canvas, edit every setting in a generated properties panel, validate, and save as a new version. The raw JSON is one tab away.
Dashboard
Instance counts by status, recent failures, open human tasks and active schedules.
Instances
Each run's diagram shows the current, completed and failed steps, with its event history, data and child workflows. Signal, update, cancel or terminate it.
Workflows
Every definition's versions: promote, demote, start with JSON input, and restore archived versions.
Tasks, schedules and namespaces
Work through human tasks, manage cron schedules, and switch namespaces from the header.
Users
Cookie sign-in with hashed passwords; administrators manage users.
Runs where your .NET code runs
Embed the engine in any .NET host: an ASP.NET Core app, a worker service or a Windows service. It persists workflow state to the database you already run.
- SQL Server, PostgreSQL, MySQL, SQLite, Oracle or IBM Db2
- Windows or Linux
- RabbitMQ and Amazon SQS message triggers
- Powers the ICL Dashboard's file ingest workflow
Dnp Workflow Engine is coming soon.
It's in its final stretch. Check back here for the launch date and early access.