workflowengineby Optimajet · since 2014

992 · Workflow Engine by Optimajet · v22.1.0 stable · August 2026 · .NET 10 down to .NET Framework 4.6.2 · Page last updated

Workflow Engine features for .NET applications

Workflow Engine by Optimajet is a workflow engine you install as a NuGet package and run inside your own .NET application. This page lists every feature it ships, in the two groups the documentation uses. Seven of them have a full page on this site, with code and limits. The designer has three more, for JavaScript, React and Blazor. The rest open their documentation page. Each one is code your team does not write.

Further down: how one runtime carries every feature, the parts you would otherwise write yourself, when an engine starts to pay, and the licence boundary per edition.

Major features, from the designer to clustering

The sixteen main functions of the engine, the documentation's major group. A card whose corner arrow points right opens our guide, with code and limits. One whose arrow points out opens the documentation in a new tab.

Workflow Designer

The HTML5 editor where your team draws schemes and your users change them later, inside your app. One npm package, React and Angular wrappers, one Designer API endpoint in your backend, included in Workflow Engine Free.

Also on JavaScript, Blazor, React

Simple Process Notation

Three building blocks, activities, transitions and commands, describe any state-machine workflow. There are no gateways, pools or lanes, so a flowchart from a whiteboard maps straight onto the scheme the runtime executes.

Process Versioning

Publish a new scheme while instances run. Each running process keeps the version it started with. New ones take the latest. The runtime moves an in-flight process across only when you ask.

Parallel Processes

A fork transition spawns a child process with its own state, parameters and timers. Three department approvals run at the same time, and the parent goes on to fulfilment when all of them finish.

Timers & Scheduling

A timer sits on a transition and fires after a delay, at a date, or on a schedule. Pending timers live in the database, so a 48-hour escalation survives a restart, with no external scheduler and no polling code.

Direct State Control

SetStateAsync moves a stuck instance to any activity marked IsForSetState, skipping the normal command path. An operator sends a failed invoice back to Pending Approval without deleting it or editing rows.

Durable Execution

Every confirmed step is a checkpoint in your database, with the current activity, the history, changed parameters and timer registrations. An idle process holds no thread, and after a crash it continues from the last checkpoint.

HTTP API

AddWorkflowApiCore() and MapWorkflowApi() publish the runtime over HTTP. A React frontend or a Python service then starts processes and runs commands with JSON.

Data API and RPC API require Workflow Engine NEO

BPMN Support

Import BPMN 2.0 diagrams from Camunda Modeler or bpmn.io and run them as native schemes, with a BPMN tab in the designer palette. Import only, no export, and the page lists the elements that are skipped.

A licensed plugin, included with the SaaS and Enterprise Editions of Workflow Engine NEO

Plugin System

Ready-made patterns as NuGet packages, including approvals, inbox and outbox queues, loops, files and Active Directory lookups. Basic, Approval and Loops ship inside the Core package. Your own plugin implements IWorkflowPlugin and registers in one line.

Pluggable Security

The engine keeps no user store. One interface, IWorkflowRuleProvider, hands every actor and command check to your LDAP, Active Directory, SSO or custom identity code. Sign-in stays where it already is.

Multitenancy

One deployment serves many customers, with process data isolated per tenant. The isolation is one shared database, separate databases, or a mix of both.

Full hybrid multitenancy requires Workflow Engine NEO

Workflow Forms

Workflow Forms attaches a data-entry form to an activity, so users fill the right fields at the right step with no custom screens.

Every Edition of Workflow Engine NEO; an add-on for the Workflow Engine Complete Edition

Customization

Custom activity types in the palette, your own input controls, and autocomplete for your domain terms. CSS and template overrides change the designer's look. Every extension point is opt-in, so the defaults stay until you replace them.

Multi-Database Support

Six providers cover nine databases, including SQL Server with Azure SQL and Managed Instance, PostgreSQL, MySQL, Oracle, MongoDB with Azure Cosmos DB, and SQLite. Your scheme and your C# stay the same on all of them.

Clustering

Call AsMultiServer() on each instance and share one database. Timers are locked at the database row. A dead node is detected by its missing heartbeat. No Redis, broker or coordinator is needed.

The Workflow Engine Complete Edition and every Edition of Workflow Engine NEO

Additional features, from the Bulk API to workflow templates

The nine features you meet once a process is in production, including batches, business calendars, simulation, the audit log, schemes as code and templates.

Bulk API

runtime.Bulk mirrors the single-instance methods with collections. Create, command or delete 500 instances in one call, in parallel, and get a result or an exception back for each one.

Work Calendar

Define working days and hours once. A timer set in wdays or whours skips weekends and holidays, so a 2 wdays deadline started at 17:00 on Friday fires on Tuesday morning.

Pre-Execution (Simulation)

PreExecuteAsync walks the route from the current activity without saving anything. You can tell a user which approval chain their click will trigger before they confirm.

Process Logs

Every transition, timer firing and command writes a history record with the source, the target, the time, the actor and the trigger. The audit trail a HIPAA, SOX or GDPR review asks for, with no logging code.

Workflow as Code

ProcessDefinitionBuilder builds the same scheme in C#, with CreateActivity, CreateTransition, CreateCommand and CreateTimer. Generate schemes at runtime, keep them in version control, or transform every scheme at load time with build steps.

Database Versioning

RunMigrations() creates or upgrades the engine's tables to match the package version, through FluentMigrator. Upgrading the NuGet package is the whole migration, and running it twice changes nothing.

Offline API

runtime.OfflineApi returns the full map of activities and available transitions for a scheme or a running instance. It also runs a list of commands in one batch and stops a chain at its first failure.

Interactive Designer

The designer shows a running process live. The Real-Time Tracking Plugin pushes changes through a SignalR hub. When a timer fires or a command runs, the current activity moves on the canvas with no page reload.

Needs the Real-Time Tracking Plugin

Workflow Templates

Mark a three-step approval as inlinable and place it in any parent scheme as an Inline activity. The build step expands it in place, and a change to the template reaches every parent on the next load.

Every feature on this page runs onone runtime inside your .NET process

Workflow Engine by Optimajet is a library. You add the WorkflowEngine.NETCore-Core package and one database provider, create a single WorkflowRuntime, register it as a singleton, and start it. There is no separate server, no cluster to operate and no vendor cloud.

A workflow is a scheme, and a scheme is data in your database. The runtime loads it and keeps the state of every process instance in the same database. It moves an instance when your code executes a command or a timer fires. Because each step is persisted, every feature above reads and writes the same tables. Versioning, clustering, the audit log and the live designer are all built on that one fact.

Scheme

Activities, transitions, commands, timers and actors, stored as XML in your database. Drawn in Workflow Designer, imported from BPMN 2.0, or built in C# with ProcessDefinitionBuilder.

Initial activity

Workflow Runtime

One WorkflowRuntime per application, inside your process. Its builder is where you switch features on: RunMigrations(), EnableCodeActions(), AsMultiServer().

Command

Your code calls ExecuteCommandAsync. The runtime asks your IWorkflowRuleProvider whether the actor may, runs the actions, and follows the matching transition.

Transition and timer

A transition carries its conditions and, when you add one, a timer. The timer waits in the database for a delay, a date or a schedule, so it survives a restart.

Persistence

Six providers write the same tables, on SQL Server, PostgreSQL, MySQL, Oracle, MongoDB or SQLite. Every confirmed step is a checkpoint, which is what durable execution and clustering rely on.

Process instance

Where the process is now, its parameters and its history. Every state change is logged, Interactive Designer shows the current activity live, and SetStateAsync moves it when it gets stuck.

Current activity

The parts you would otherwise write

Each row is a job a team adds to its own state machine sooner or later, and the API that already does it.

The jobWhat shipsFeature
An editor your users can openWorkflow Designer, one npm package and one Designer API endpointWorkflow Designer
Delays, deadlines and escalationsTimers on transitions, plus a Work Calendar for business hoursTimers & Scheduling
State that survives a restartA checkpoint on every step, through IPersistenceProviderDurable Execution
Changing a process that has instances runningProcess Versioning, decided per instanceProcess Versioning
Three approvals at the same timeParallel Processes, through fork transitionsParallel Processes
Unsticking an instanceSetStateAsync on WorkflowRuntimeDirect State Control
Who may run which commandIWorkflowRuleProvider, with your identity system behind itPluggable Security
An audit trail an auditor acceptsProcess Logs, one record per state changeProcess Logs
A second serverAsMultiServer() and a shared databaseClustering
Calls from a client that is not .NETMapWorkflowApi(), the HTTP APIHTTP API
Tenant isolationTenantId on the process, full hybrid multitenancy in Workflow Engine NEOMultitenancy
Schema upgrades on every releaseRunMigrations(), through FluentMigratorDatabase Versioning

When the engine starts to pay, and where it stops

When it pays

A process with two statuses and one approver is a column and a switch statement. The engine does not earn its package there. It starts to pay at the first timer and the first parallel approval. Then at the first change to a process that already has instances running, and at the first auditor who asks who approved what and when. Every one of those is a row in the table above. Every one is where a home-grown state machine grows a second module.

The longer argument, with the code a state machine turns into, is in the article workflow engine vs state machine.

What it does not do

  • It is not a hosted service. You run it inside your application, or as the separate Workflow Server product, and your database holds the state.
  • BPMN is import only. Diagrams come in through the BPMN plugin and run as native schemes. There is no export back to BPMN.
  • It keeps no users. Sign-in and the user store stay yours, and the engine asks your rule provider on every check.
  • Workflow Engine Free covers personal and internal commercial use, with attribution. It stops at 10 schemas and 4 execution threads, and the designer shows Optimajet branding.

Which product includes which feature

The runtime, persistence, timers, conditions, rules and actions are in every product and edition, including Workflow Engine Free. The cells below are where the price list draws the boundary.

Workflow Engine Free

The full Workflow Designer and every core runtime feature, for personal use and internal commercial use, with attribution. 10 schemas and 4 execution threads, with activities, transitions and commands unrestricted. The designer shows Optimajet branding.

What Free includes

Workflow Engine Team and Complete

Perpetual licenses for internal commercial use. Team runs on a single server. Complete adds multi-server clustering and removes the branding. The Active Directory and BPMN import plugins are paid add-ons on both, and the Forms Plugin is an add-on on Complete.

The Workflow Engine product

Workflow Engine NEO

Subscription, Business, SaaS and Enterprise. All four add the Data API and RPC API groups of the HTTP API, full hybrid multitenancy, multi-server clustering and the Forms Plugin. NEO SaaS and NEO Enterprise include the Active Directory and BPMN import plugins. Subscription and Business price them separately.

The Workflow Engine NEO product

Compare Workflow Engine products

Prices for Workflow Engine and Workflow Engine NEO are on the pricing page.

Common questions

What teams ask while reading a feature list: what a workflow engine is, what the free product includes, what a plugin is, and where the code lives.

  1. What is a workflow engine?

    A workflow engine runs business processes as state machines. It persists the current state of each process, identifies the transitions available from that state, and advances the process when a command, timer, or automatic transition applies. By default, Workflow Engine records completed process movements in transition history; optional Process Logs are a separate diagnostic stream. Workflow Engine by Optimajet is a NuGet library that you embed in your .NET application instead of running as a separate service.

  2. What features does Workflow Engine support?

    Workflow Engine by Optimajet ships 25 features in two groups. The sixteen major features are Workflow Designer, Simple Process Notation, Process Versioning, Parallel Processes, Timers & Scheduling, Direct State Control, Durable Execution, HTTP API, BPMN Support, Plugin System, Pluggable Security, Multitenancy, Workflow Forms, Customization, Multi-Database Support and Clustering. The nine additional features are Bulk API, Work Calendar, Pre-Execution (Simulation), Process Logs, Workflow as Code, Database Versioning, Offline API, Interactive Designer and Workflow Templates. Every one has a page in the documentation, seven have a full page on this site, and the designer has three more pages for JavaScript, Blazor and React.

  3. Which features are included in Workflow Engine Free?

    Workflow Engine Free is licensed for personal use and internal commercial use, with attribution. It includes Workflow Designer, Real-Time Tracking, workflow templates (scheme inlining), and the Core capabilities for runtime execution, persistence, timers, conditions, rules, and actions. It supports up to 10 schemes and 4 execution threads; activity, transition, and command counts are unrestricted, and Workflow Designer shows Optimajet branding. Multi-server deployment starts with Workflow Engine Complete and is included in every edition of Workflow Engine NEO. Full hybrid multitenancy and the Data, Search, and RPC groups require Workflow Engine NEO. Forms is an add-on for Workflow Engine Complete and included in every edition of Workflow Engine NEO. BPMN and Active Directory are unavailable on Free; they are paid add-ons for the Team and Complete editions of Workflow Engine and the Subscription and Business editions of Workflow Engine NEO, and included with Workflow Engine NEO SaaS and Enterprise.

  4. What is the difference between a feature and a plugin?

    A feature is a product capability, such as versioning, timers, or multitenancy. A plugin is a runtime extension that adds reusable workflow or Designer behavior, such as approvals, loops, file operations, or Active Directory lookups. The Basic, Approval, and Loops Plugins ship inside the Core package; the File, Active Directory, Real-Time Tracking, BPMN, and Forms Plugins install as separate packages.

  5. Does Workflow Engine import and export BPMN?

    Workflow Engine imports BPMN 2.0 XML. The BPMN Plugin converts supported structure from tools such as Camunda Modeler, Signavio, or Bizagi into one or more native schemes and adds BPMN elements to Workflow Designer. There is no export back to BPMN. Coverage depends on the element and diagram topology: the importer preserves supported flow, reports detected limitations, and lets you complete the converted schemes in Workflow Designer before execution.

  6. Can I define a workflow in code instead of drawing it?

    Yes. ProcessDefinitionBuilder is a fluent C# API, available since Workflow Engine 13.3.0, with CreateActivity, CreateTransition, CreateCommand, CreateTimer and CreateActor methods. It produces the same ProcessDefinition the designer saves, and build steps can transform any scheme at load time, whichever way it was authored.

  7. Does the engine need its own server?

    No. A typical embedded deployment runs Workflow Runtime and a persistence provider inside your .NET application. In a standard multi-server deployment, each application node runs a Workflow Runtime instance against shared persistence; physical or hybrid tenant deployments can register separate runtime, provider, and storage boundaries. Built-in coordination removes the need for a separate broker or coordinator. Workflow Server is a separate product for teams that want a standalone workflow service with its own APIs.

  8. Which databases can hold the workflow state?

    Six persistence provider packages cover nine database and deployment targets: Microsoft SQL Server, Azure SQL, Azure SQL Managed Instance, PostgreSQL, MySQL, Oracle, MongoDB, Azure Cosmos DB through its MongoDB-compatible API, and SQLite. In a manual Core setup, call RunMigrations() during startup after a package update for SQL Server, PostgreSQL, MySQL, Oracle, and SQLite. MongoDB upgrades use the version-specific scripts and release notes.

  9. Where is each feature documented?

    Each feature has its own page under docs.workflowengine.io/evaluate/workflow-engine-features/, and that catalog is the source this page mirrors, in the same two groups. The seven features with a page on this site add code samples, limits and licensing. For the other eighteen, the card opens the documentation page directly.

Run the feature list against a process you already have

Install Workflow Engine Free, draw one process in the designer, and add timers, parallel branches and versioning as you need them. The same Core package and process model carry into Workflow Engine and Workflow Engine NEO.

Still comparing options? The documentation's feature catalog has a page per feature with the developer notes, and this page follows its list.