Skip to content
GitHub
BPMN 2.0 .NET · Orleans

Fleans

A BPMN workflow engine built on .NET Orleans. Design workflows visually, deploy them as BPMN XML, and run every instance as an event-sourced actor — scale out by adding silos, not by tuning a central orchestrator.

Architecture

Your backend talks REST to one Orleans cluster. Core, worker and custom-worker silos share it; state, clustering, reminders and streams plug into whichever storage and queues you already run — Fleans ships SQLite, PostgreSQL, Redis, Kafka and Azure Queue, and any other Orleans provider fits the same seams.

Interactive diagram. Open full screen ↗

Execution model

How a workflow instance runs, survives failure, and stays fast.

grainactor

Actors, not orchestrators

Every workflow is an independent Orleans grain. No shared coordinator, no lock contention — add silos, get linear throughput.

journalreplay

Event-sourced, crash-safe state

Append-only event log with deterministic replay. Silo dies mid-workflow? Orleans reactivates the grain on another silo — no orphaned state.

memorybatch

In-memory hot path

Active workflows run from RAM — mid-workflow steps skip the database. Events batch into one transaction at the end of each grain call.

bpmnerrors

Typed BPMN recovery paths

Compensation, error boundaries, and escalation events are first-class. Failure modes get explicit semantics, not ad-hoc try/catch.

Data & operations

Reads, storage and transport are split so each can scale or be swapped on its own.

cqrsreplica

Scale reads separately from writes

Built-in CQRS split routes read traffic through a NoTracking query context and an optional PostgreSQL replica.

projectionef

Materialized read projections

Admin UI and state queries read a pre-built EF projection. No event replay to render a list or poll for completion.

sqlitepostgres

Bring your own database

SQLite for laptops, PostgreSQL for production — selected at startup via a single config key, no code change. The provider model is open if you need to add another.

streamskafka

Plug in your stream provider

Domain events flow through Orleans Streams. Flip Fleans:Streaming:Provider=kafka to use the bundled Kafka adapter for cross-silo durability — or ship your own provider against the same extension point.

dockerhelm

Run in your infrastructure

Fleans ships as a container image you can run anywhere — laptop, VM, or Kubernetes. Your data never leaves your network, and there is no SaaS dependency to ramp.

pluginworker

Extend with your own tasks and workers

Wrap REST calls, queues, or any custom integration as a BPMN task by shipping a worker silo from a GitHub template. Engine and plugin hosts scale independently, so one workflow can fan out across your own fleet.

Next steps