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.
Three modes, one engine
Section titled “Three modes, one engine”The same engine runs in three deployment modes. Choose the mode by what you want to do:
| Mode | Use it for | Storage | Console |
|---|---|---|---|
| Embedded | Process tests, CI | None: everything is in memory, with a virtual clock your test moves | Console at /console |
| Bundled | Demos, development and production for one team | One container with the engine and PostgreSQL, one volume | Console at /console |
| Cluster | Shared production for many teams or customers (tenants) | A PostgreSQL database you operate, with each tenant’s data kept apart and per-tenant quotas | Console 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.
How you get it
Section titled “How you get it”Every mode runs from a published container image or a release download; there is nothing to build.
| You want | Use |
|---|---|
| Bundled mode | the registry.tinyfactory.ai/tinyblox/tinyconductor-bundled image (Quickstart) |
| The Embedded test engine, or Cluster nodes | the 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 C | the Embedded C library in the release archive (.NET, C and FFI) |
| Script tasks | the registry.tinyfactory.ai/tinyblox/tinyconductor-script-worker image (Script tasks) |
Where to go next
Section titled “Where to go next”- 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.