Skip to content

Fleans

Design visual workflows, run them at scale in .NET Orleans.

GitHub starsGitHub stars

Actors, not orchestrators

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

Scale reads separately from writes

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

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. Learn how →

Typed BPMN recovery paths

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

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.

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.

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. Learn how →

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. Learn how →

Plug in your stream provider

Domain events flow through Orleans Streams. Default is in-memory; 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. Learn how →

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. Learn how →