Penstock

Guide / Set up a project

Engines

An engine is the server that runs your process. Penstock builds a different editor for each one, and this page says what changes.

Free

The engines Penstock knows

Engineengine: valueNamespace in the XMLAddress of the REST API
Classic BPMN 2.0classicNone. Plain BPMN only.No deployment
Camunda 7camunda-7camunda, bound to http://camunda.org/schema/1.0/bpmnEnds in /engine-rest
Camunda 8camunda-8zeebe, bound to http://camunda.org/schema/zeebe/1.0The REST API of the cluster, for example http://localhost:8080/v2
Operatonoperatonoperaton, bound to http://operaton.org/schema/1.0/bpmnEnds in /engine-rest
CIB sevencib-sevencamunda, the same as Camunda 7Ends in /engine-rest

Operaton and CIB seven are open-source continuations of Camunda 7. Camunda ended community support for Camunda 7 in October 2025. Penstock calls Camunda 7, Operaton and CIB seven the Camunda 7 family. They share the same editor, the same REST API shape and the same features. The differences are the ones in the table above and in Java packages, listed below.

Choose the engine

An empty editor with the question Which engine runs this diagram? in a card. The line under it says it decides the palette and the properties, and goes into penstock.yaml. Five buttons: Camunda 8, Operaton, CIB seven, Camunda 7 and Classic BPMN
The question above an empty canvas, with the five engines as buttons.

You usually do not have to. Penstock finds out in this order:

  1. engine in the nearest penstock.yaml. The file nearest the diagram wins, so a folder can have its own engine.
  2. The diagram itself: the execution platform the Camunda Modeler recorded, or the zeebe:, operaton: or camunda: attributes it already has.
  3. If the diagram is empty and says nothing, one line appears above the canvas: Which engine runs this diagram? Press Camunda 8, Operaton, CIB seven, Camunda 7 or Classic BPMN. The answer goes into penstock.yaml, created in the project root if there is none, and the line does not come back.

Changing the engine takes effect when the diagram editor is reloaded, because the editor is built for it. penstock init --engine camunda-8|camunda-7|operaton|cib-seven|classic says it outright, and plain penstock init guesses the engine from your diagrams. If it finds several, it prefers Camunda 8, then Operaton, CIB seven, Camunda 7 and Classic. If the command line finds no engine at all, it treats a deployment as Camunda 7.

The engine is set per folder, not per file: a penstock.yaml that sets engine applies to every diagram under its folder. A project with Camunda 7 and Camunda 8 diagrams needs nothing special, give each folder its own file. Code links keep the two apart: a Camunda 8 job type finds its job worker and never an external task subscription of the same name.

It is called Classic BPMN everywhere in the interface. The penstock.yaml value stays engine: classic.

What each engine builds

Classic BPMN 2.0

The plain bpmn-js editor with the standard properties panel. No Camunda extension is registered, so this profile cannot write camunda: or zeebe: attributes. It has Inputs and Outputs written the BPMN way, and the colour picker and the grid with snapping that the other profiles have. See The properties panel. There is no Deploy button, no Scenarios, no templates.

Camunda 7

The Camunda Platform editor. The panel gains the execution groups: Script, Condition, Execution listeners, Task listeners, Inputs and Outputs, and more. Penstock adds element template support and a code editor for scripts, which can open in the code editor of your tool. See Scripts in their own tab. scriptType in penstock.yaml sets the default script language.

Camunda 8

The Camunda Cloud editor, with the Zeebe properties, FEEL help and element templates. It can create an element from a template or from the full element list. The connector template browser, Templates… in the More menu, is only here.

Operaton

The Camunda 7 editor, with a mapping so that the panel reads and writes operaton: attributes where Camunda 7 would use camunda:. If a diagram in an Operaton project still uses the Camunda 7 namespace, the diagram check shows a finding Wrong engine namespace with a Fix button. It opens a dialog called Convert Namespace. Press Convert to rewrite all camunda: attributes to operaton:. Operaton also reads camunda: in its 1.x line, so this is a tidy-up, not always a must.

CIB seven

The Camunda 7 editor, unchanged. CIB seven uses the same camunda: namespace as Camunda 7. The difference is in what Penstock writes for you: the Java packages of a generated JUnit test and the engine's own test configuration file. The decision editor's properties panel gives a decision its version tag and its history time to live, as Camunda 7 does.

What else depends on the engine

ClassicCamunda 7Camunda 8OperatonCIB seven
Deploy, ScenariosNoYesYesYesYes
Migrate to Camunda 8NoYesNoYesYes
Connector browserNoNoYesNoNo
Transaction boundariesNoYesNoYesYes
Element templatesNoYesYesYesYes
Script editor tabNoYesNoYesYes
Java package for code links and tests-org.camundaio.camundaorg.operatonorg.cibseven
Test config file in generated tests-camunda.cfg.xmlnoneoperaton.cfg.xmlcibseven.cfg.xml

The check, bpmnlint, auto layout, token simulation, task resizing and export work for every engine. Camunda 7, Operaton and CIB seven all answer on the same engine-rest path, so one deployment.url covers the family; Camunda 8 has its own REST address. See Deployment.

What reaches the XML

A service task configured for Camunda 7 carries attributes like camunda:asyncBefore. The same task for Camunda 8 carries zeebe:taskDefinition or zeebe:ioMapping. An element made from a template records where it came from: camunda:modelerTemplate or zeebe:modelerTemplate.

Nothing rewrites a diagram when it opens. If you switch a project from Camunda 7 to Classic, the camunda: content stays in the file. The editor has no panel for it any more.

What you see

Common problems

I chose the wrong engine in the question.
Edit engine in penstock.yaml and reload the diagram editor.
The panel shows Camunda 7 groups but my engine is Camunda 8.
The engine comes from the nearest penstock.yaml. A file in a subfolder may say something else. penstock doctor prints the engine that applies.
Deploy says to choose an engine.
The message reads Choose Camunda 7, Camunda 8, Operaton or CIB seven as the engine in penstock.yaml to deploy. Set engine.
I use Operaton but my tool treats my diagram as Camunda 7.
Set engine: operaton. Without it, Penstock reads the diagram: a diagram with operaton: attributes is Operaton, but one with only camunda: attributes is Camunda 7.