Skip to content

What is TinyConductor?

TinyConductor is a process engine. You draw a business process as a BPMN diagram, deploy it, and TinyConductor runs it: it starts process instances, hands work to your job workers (programs) and to people (user tasks), evaluates DMN decisions, and waits for timers and messages. It is written in Rust.

Every step the engine takes is saved as a record. Records are never changed afterwards. TinyConductor Console, the audit log and the analytics views all read from them, so you can always see what happened and who did it. New to these terms? See the Glossary.

TinyConductor runs existing BPMN processes. Models that use the supported elements deploy and run unchanged, whether their extensions are written in TinyConductor’s own tc: namespace or in the compatibility namespace. Job workers, clients and SDKs connect over REST. The API has a v1 part and a v2-compatible part that is still growing.

  • Compatibility explains what “compatible” means, the versions it targets and the known differences.
  • BPMN coverage lists, element by element, what is supported.

TinyConductor is proprietary software, available as a private beta under agreement. Read Beta data handling before you put real processes on it.

The same engine runs in three deployment modes. Choose the mode by what you want to do:

ModeUse it forStorageConsole
EmbeddedProcess tests, CINone: everything is in memory, with a virtual clock your test movesConsole at /console
BundledDemos, development and production for one teamOne container with the engine and PostgreSQL, one volumeConsole at /console
ClusterShared production for many teams or customers (tenants)A PostgreSQL database you operate, with each tenant’s data kept apart and per-tenant quotasConsole at /console

The modes differ only in durability, speed, capacity and tenancy. A process behaves the same in all three: the same path through the diagram, the same records, the same incidents and the same FEEL results.

  • Embedded gives the same result every time. Time stands still until your test moves it, and when it moves, every timer that is due fires before the call returns. It runs inside a .NET, Rust or C test process, or as a local server that any language drives over REST. See Testing processes.
  • Bundled saves every change to PostgreSQL before it answers, runs timers on the real clock, and restarts from PostgreSQL alone. It requires authentication by default.
  • Cluster runs the same engine on several nodes that share one PostgreSQL database: the work is split into partitions, any node answers any request, and when a node stops the others take its partitions over. Tenants are kept apart in the database, each with its own quotas.

Every API operation works in all three modes. The few routes that exist in one mode only, such as Embedded mode’s virtual clock, are listed in the API reference.

Every mode runs from a published container image or a release download; there is nothing to build.

You wantUse
Bundled modethe registry.tinyfactory.ai/tinyblox/tinyconductor-bundled image (Quickstart)
The Embedded test engine, or Cluster nodesthe registry.tinyfactory.ai/tinyblox/tinyconductor image, or the tinyconductor program from the release archive for Linux, macOS or Windows (Embedded mode, Cluster mode)
In-process tests from .NET or Cthe Embedded C library in the release archive (.NET, C and FFI)
Script tasksthe registry.tinyfactory.ai/tinyblox/tinyconductor-script-worker image (Script tasks)
  • Quickstart: run the container, deploy the sample order process, complete a job and watch it in the console.
  • Testing processes: write process tests in .NET, Rust, C, Java, TypeScript, Python or Go against the Embedded engine.
  • Identity and access: sign people in with your identity provider, and give users, groups and clients permissions.
  • API reference: the REST API.
  • Operations: health checks, metrics and backups.
  • Compatibility: moving existing models, workers and clients to TinyConductor.
  • Glossary: the terms these pages use.