Introduction
Fleans is a BPMN 2.0 workflow engine built on Microsoft Orleans. It ships as a set of containers; your application drives workflows over the REST API, in any language that speaks HTTP.
The engine targets approvals, order flows, escalations, and other multi-step business logic that benefits from a visual workflow model rather than ad-hoc state machines.
What is BPMN?
Section titled “What is BPMN?”BPMN (Business Process Model and Notation) is the industry-standard visual language for describing workflows. It defines a small set of symbols — events, activities, gateways, and flows — that combine into executable process diagrams.
How it fits into your stack
Section titled “How it fits into your stack”Fleans runs as a cluster of its own — four published container images deployed via
Docker Compose or the Helm chart. Your application sits outside that cluster and calls
the REST API on fleans-api.
fleans-api— REST API + Orleans silo (Core role); this is the surface your app talks to.fleans-web— Blazor admin UI for deploying BPMN diagrams and inspecting running workflows.fleans-worker— Orleans silo (Worker role) running script and condition evaluation.fleans-mcp— MCP server for AI-tool integrations.- (optional) custom worker host — a .NET process you build to add your own task types.
It joins the cluster alongside
fleans-worker. See the template repo.
Extending the engine with a new task type is .NET-only (handlers derive from
CustomTaskHandlerBase). The standard task set — Service Tasks, User Tasks, Script Tasks,
and the built-in REST caller plugin — covers most use cases without writing a plugin.
Choose your path
Section titled “Choose your path”Three tracks. They overlap and you can mix them.
App developer — driving workflows from your application:
- Quick Start — clone, run, deploy a sample workflow.
- Service Tasks — call out to your code or HTTP endpoints.
- User Tasks — human-in-the-loop steps.
- Variables and scope — how workflow state flows between activities.
Plugin author — adding new task types to the engine:
- Custom Tasks — the plugin architecture.
- Writing Custom Tasks — implement a handler.
- Custom Worker Host — package and deploy your handler alongside the engine.
Operator — running the engine in your environment:
- Self-host with Docker Compose — the published bundle.
- Self-host with Helm — Kubernetes deployment.
- Architecture — how the engine is structured under the hood.
What’s supported today
Section titled “What’s supported today”Fleans implements a growing subset of BPMN 2.0 — events, activities, gateways, sequence flows, plus message/signal/timer/error boundary events and compensation handlers.