Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
fb6eab4
Fix documentation copy typos
hauptmedia Jun 17, 2026
e7f294b
Normalize remaining copy terms
hauptmedia Jun 17, 2026
078fd5c
Fix additional documentation typos
hauptmedia Jun 17, 2026
021a6c1
Fix minor documentation copy issues
hauptmedia Jun 17, 2026
8f2eda8
Polish additional copy wording
hauptmedia Jun 17, 2026
1681cf1
Fix process engine copy wording
hauptmedia Jun 17, 2026
2fef0ba
Fix BPMN example label typo
hauptmedia Jun 17, 2026
dd71684
Fix additional documentation copy issues
hauptmedia Jun 17, 2026
73e5521
Fix cancellation wording
hauptmedia Jun 17, 2026
c0ece07
Fix Spring archive log file wording
hauptmedia Jun 17, 2026
77bbb5e
Fix JSF task form wording
hauptmedia Jun 17, 2026
8d771bd
Fix additional documentation wording
hauptmedia Jun 17, 2026
9536c43
Remove trailing whitespace in docs
hauptmedia Jun 17, 2026
9b0d4eb
Fix additional copy issues
hauptmedia Jun 17, 2026
37f0b12
Polish additional documentation copy
hauptmedia Jun 17, 2026
b290d94
Polish remaining process engine copy
hauptmedia Jun 17, 2026
bfaf2df
Polish remaining copy wording
hauptmedia Jun 17, 2026
a406ee9
Polish identity service copy wording
hauptmedia Jun 17, 2026
760803f
Polish process engine copy wording
hauptmedia Jun 17, 2026
b44b789
Fix additional tutorial copy typos
hauptmedia Jun 17, 2026
6ab895e
Polish admin authorization wording
hauptmedia Jun 17, 2026
9d58c01
Polish remaining allows-to copy
hauptmedia Jun 17, 2026
0ef4d7a
Remove trailing spaces in copy-edited docs
hauptmedia Jun 17, 2026
b09ec08
Polish additional copy wording
hauptmedia Jun 17, 2026
c343939
Polish CMMN lifecycle and Java object form copy
hauptmedia Jun 17, 2026
b3b3107
Polish Connect and Spin reference wording
hauptmedia Jun 17, 2026
7821ddb
Polish setup and reference copy
hauptmedia Jun 17, 2026
7d2ebab
Polish runtime and webapp copy
hauptmedia Jun 17, 2026
bfbf196
Polish shared webapp security copy
hauptmedia Jun 17, 2026
75c9071
Remove obsolete Optimize references
hauptmedia Jun 17, 2026
30a2e52
Replace stale Camunda namespace example
hauptmedia Jun 17, 2026
5bc7587
Fix DMN extension namespace wording
hauptmedia Jun 17, 2026
cf14e80
Fix DMN namespace snippet quoting
hauptmedia Jun 17, 2026
9137c86
Polish Spring Boot webapp wording
hauptmedia Jun 17, 2026
98f805b
Polish Tasklist dashboard wording
hauptmedia Jun 17, 2026
5db2fe3
Polish Cockpit UI wording
hauptmedia Jun 17, 2026
67753ee
Polish Cockpit dashboard wording
hauptmedia Jun 17, 2026
11bc9ad
Polish Cockpit CMMN and DMN view wording
hauptmedia Jun 17, 2026
9cf5b83
Polish Cockpit BPMN detail wording
hauptmedia Jun 17, 2026
74cc71f
Polish Admin management wording
hauptmedia Jun 17, 2026
35059ee
Polish Spring event bridge wording
hauptmedia Jun 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/documentation/installation/database-schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Operaton supports the following ways of installing the database schema:
* Use the provided SQL scripts with the tools related to your database for a fully manual installation and update. A manual procedure allows you to fully control the SQL statements that are executed on your database instance and to adjust those statements to your needs if necessary.

:::note[Isolation level]
READ COMMITED is the required isolation level for database systems to run Operaton with.
READ COMMITTED is the required isolation level for database systems to run Operaton with.
You may have to change the default setting on your database when installing Operaton.
For more information see the documentation on [isolation levels](../user-guide/process-engine/database/database-configuration.md#isolation-level-configuration).
:::
Expand Down Expand Up @@ -131,7 +131,7 @@ Liquibase provides additional commands to preview all changes applied by command
#### Migrate to Liquibase

Liquibase provides workflows to update databases that were not set up using Liquibase from the very beginning.
For such a scenario to work, you need to populate a tracking table that represents the current state of your database with regards to the changelog file you want to update against.
For such a scenario to work, you need to populate a tracking table that represents the current state of your database with regard to the changelog file you want to update against.
In other words, you need to let Liquibase know which parts of the changelog your database already contains.

Perform the following steps to migrate your manual installation to Liquibase:
Expand Down Expand Up @@ -171,4 +171,4 @@ If you need to apply multiple minor versions, you MUST execute the database alte

### Patch level update

Patch level updates will be delivered once applicable patches are issued, since no such updates have been needed so far.
Patch level updates will be delivered once applicable patches are issued, since no such updates have been needed so far.
14 changes: 7 additions & 7 deletions docs/documentation/installation/full/tomcat/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ This page explains how to configure the full distribution for Tomcat Application

### LDAP

In order to setup LDAP for the Tomcat distribution, you have to perform the following steps:
In order to set up LDAP for the Tomcat distribution, you have to perform the following steps:


### Add the LDAP Library
Expand Down Expand Up @@ -82,9 +82,9 @@ See our user guide for complete documentation on the [LDAP Identity Provider Plu

### HAL Resource Caching

If you use LDAP as Indentity Provider, you should consider [activating caching](../../../reference/rest/overview/hal.md#caching-of-hal-relations) of
Users and Groups in the Operaton webapplication. In order to activate this, add the following
configuration to the `web.xml` file of Operaton webapplication
If you use LDAP as Identity Provider, you should consider [activating caching](../../../reference/rest/overview/hal.md#caching-of-hal-relations) of
Users and Groups in the Operaton web application. In order to activate this, add the following
configuration to the `web.xml` file of Operaton web application
(`operaton-webapp-tomcat-$PLATFORM_VERSION.war/WEB-INF/web.xml`):

```xml
Expand Down Expand Up @@ -241,8 +241,8 @@ Please also see the detailed overview about the [Cookie Security](../../../webap

### Security-related HTTP headers in Webapps

To customize the configuration of security-related HTTP headers in the web applications its deployment descriptor needs
to be adjusted. You can find it under `WEB-INF/web.xml`.
To customize the configuration of security-related HTTP headers in the web applications, adjust each web application's
deployment descriptor. You can find it under `WEB-INF/web.xml`.

Please watch out for the following section:
```xml
Expand Down Expand Up @@ -284,4 +284,4 @@ You can change the default behavior by adding configuration parameters to the se
```

Please also see the detailed overview about the
[HTTP Header Security configuration settings](../../../webapps/shared-options/header-security.md#how-to-configure).
[HTTP Header Security configuration settings](../../../webapps/shared-options/header-security.md#how-to-configure).
4 changes: 2 additions & 2 deletions docs/documentation/installation/full/wildfly/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This page explains how to configure the full distribution for the WildFly applic

### LDAP

In order to setup LDAP for the WildFly Application Server distribution, you have to perform the following steps:
In order to set up LDAP for the WildFly Application Server distribution, you have to perform the following steps:


### Adjust the Process Engine Configuration
Expand Down Expand Up @@ -197,4 +197,4 @@ You can change the default behavior by adding configuration parameters to the se
```

Please also see the detailed overview about the
[HTTP Header Security configuration settings](../../../webapps/shared-options/header-security.md#how-to-configure).
[HTTP Header Security configuration settings](../../../webapps/shared-options/header-security.md#how-to-configure).
8 changes: 4 additions & 4 deletions docs/documentation/introduction/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ sidebar_position: 30

Operaton is a Java-based framework. The main components are written in Java and we have a general focus on providing Java developers with the tools they need for designing, implementing and running business processes and workflows on the JVM. Nevertheless, we also want to make the process engine technology available to non-Java developers. This is why Operaton also provides a REST API which allows you to build applications connecting to a remote process engine.

Operaton can be used both as a standalone process engine server or embedded inside custom Java applications. The embeddability requirement is at the heart of many architectural decisions within Operaton. For instance, we work hard to make the process engine component a lightweight component with as little dependencies on [third-party libraries](./third-party-libraries/index.md) as possible. Furthermore, the embeddability motivates programming model choices such as the capabilities of the process engine to participate in Spring Managed or JTA [transactions and the threading model](../user-guide/process-engine/transactions-in-processes.md).
Operaton can be used both as a standalone process engine server or embedded inside custom Java applications. The embeddability requirement is at the heart of many architectural decisions within Operaton. For instance, we work hard to make the process engine component a lightweight component with as few dependencies on [third-party libraries](./third-party-libraries/index.md) as possible. Furthermore, the embeddability motivates programming model choices such as the capabilities of the process engine to participate in Spring Managed or JTA [transactions and the threading model](../user-guide/process-engine/transactions-in-processes.md).


## Process Engine Architecture
Expand Down Expand Up @@ -64,10 +64,10 @@ The individual process engine instances do not maintain session state across tra

Operaton doesn't provide load-balancing capabilities or session replication capabilities out of the box. The load-balancing function would need to be provided by a third-party system, and session replication would need to be provided by the host application server.

In a clustered setup, if users are going to login to the web applications, an extra step will need to be taken to ensure that users aren't asked to login multiple times. Two options exist:
In a clustered setup, if users are going to log in to the web applications, an extra step will need to be taken to ensure that users aren't asked to log in multiple times. Two options exist:

1. "Sticky sessions" could be configured and enabled within your load balancing solution. This would ensure that all requests from a given user are directed to the same instance over a configurable period of time.
2. Session sharing can be enabled in your application server such that the application server instances share session state. This would allow users to connect to multiple instances in the cluster without being asked to login multiple times.
2. Session sharing can be enabled in your application server such that the application server instances share session state. This would allow users to connect to multiple instances in the cluster without being asked to log in multiple times.

If neither of the above approaches are implemented in a cluster setup, connections to multiple nodes - intentionally or via a load-balancing solution - will result in multiple login requests.

Expand All @@ -76,7 +76,7 @@ If neither of the above approaches are implemented in a cluster setup, connectio
The process engine [job executor](../user-guide/process-engine/the-job-executor.md) is also clustered and runs on each node. This way, there is no single point of failure as far as the process engine is concerned. The job executor can run in both [homogeneous and heterogeneous clusters](../user-guide/process-engine/the-job-executor.md#cluster-setups).

:::note[Time zones]
The are some limitations on [time zone usage in a cluster](../user-guide/process-engine/time-zones.md#cluster-setup).
There are some limitations on [time zone usage in a cluster](../user-guide/process-engine/time-zones.md#cluster-setup).
:::


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.3.0">
<bpmn:process id="Process_1" isExecutable="false">
<bpmn:sequenceFlow id="SequenceFlow_1wjobn4" sourceRef="StartEvent_1" targetRef="Task_1vtii2s" />
<bpmn:startEvent id="StartEvent_1" name="Recieved Application">
<bpmn:startEvent id="StartEvent_1" name="Received Application">
<bpmn:outgoing>SequenceFlow_1wjobn4</bpmn:outgoing>
<bpmn:messageEventDefinition />
</bpmn:startEvent>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
<outgoing>SequenceFlow_5</outgoing>
<messageEventDefinition id="sid-ee82440f-a113-4016-b633-53f65fa3d8f2"/>
</boundaryEvent>
<task id="Task_2" name="Handle cancelation">
<task id="Task_2" name="Handle cancellation">
<extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/>
<signavio:signavioMetaData metaKey="adaptereventtype" metaValue=""/>
Expand Down Expand Up @@ -170,4 +170,4 @@
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
</definitions>
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
<bpmn2:messageEventDefinition id="MessageEventDefinition_3"/>
</bpmn2:boundaryEvent>
<bpmn2:task id="Task_2" name="Handle cancelation">
<bpmn2:task id="Task_2" name="Handle cancellation">
<bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
</bpmn2:task>
Expand Down Expand Up @@ -113,4 +113,4 @@
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>
</bpmn2:definitions>
6 changes: 3 additions & 3 deletions docs/documentation/reference/bpmn20/events/message-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ List<MessageCorrelationResult> results = runtimeService
.correlateAllWithResult();
```

In this case the matching execution will be selected based on variables existing in it's scope (ignoring all parent scopes).
In this case, the matching execution will be selected based on variables existing in its scope (ignoring all parent scopes).

In case of successful correlation, the correlated or newly created process instance is updated with the variables from the `processVariables` map.

Expand Down Expand Up @@ -292,12 +292,12 @@ The following example shows different message events in a process model:
</intermediateCatchEvent>
```

Instead of the message intermediate catching event you might want to think about a <a href="../tasks/receive-task.md">Receive Task</a> instead, which can serve similar purposes but is able to be used in combination with boundary events. In combination with the message intermediate catching event you might want to use an <a href="../gateways/event-based-gateway.md">Event-based Gateway</a>.
Instead of the message intermediate catching event, you might want to use a <a href="../tasks/receive-task.md">Receive Task</a>, which can serve similar purposes and can be used in combination with boundary events. In combination with the message intermediate catching event, you might want to use an <a href="../gateways/event-based-gateway.md">Event-based Gateway</a>.


## Message Boundary Event

Boundary events are catching events that are attached to an activity. This means that while the activity is running, the message boundary event is listening for named message. When this is caught, two things might happen, depending on the configuration of the boundary event:
Boundary events are catching events that are attached to an activity. This means that while the activity is running, the message boundary event is listening for a named message. When this is caught, two things might happen, depending on the configuration of the boundary event:

* Interrupting boundary event: The activity is interrupted and the sequence flow going out of the event is followed.
* Non-interrupting boundary event: One token stays in the activity and an additional token is created which follows the sequence flow going out of the event.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ It is important not to confuse the BPMN transaction subprocess with technical (A

A BPMN transaction differs from a technical transaction in the following ways:

* While an ACID transaction is typically short lived, a BPMN transaction may take hours, days or even months to complete. (Consider a case where one of the activities grouped by a transaction is a usertask; typically, people have longer response times than applications. Or, in another situation, a BPMN transaction might wait for some business event to occur, like the fact that a particular order has been fulfilled.) Such operations usually take considerably longer to complete than updating a record in a database or storing a message using a transactional queue.
* While an ACID transaction is typically short lived, a BPMN transaction may take hours, days or even months to complete. (Consider a case where one of the activities grouped by a transaction is a user task; typically, people have longer response times than applications. Or, in another situation, a BPMN transaction might wait for some business event to occur, like the fact that a particular order has been fulfilled.) Such operations usually take considerably longer to complete than updating a record in a database or storing a message using a transactional queue.

* Because it is impossible to scope a technical transaction to the duration of a business activity, a BPMN transaction typically spans multiple ACID transactions.

Expand All @@ -63,7 +63,7 @@ To sum it up: while ACID transactions offer a generic solution to such problems
The BPMN specification requires that the process engine reacts to events issued by the underlying transaction protocol and, in case a transaction is canceled, if a cancel event occurs, in the underlying protocol. As an embeddable engine, the Operaton engine currently does not support this. (For some ramifications of this, see the paragraph on consistency below.)
:::

Consistency on top of ACID transactions and optimistic concurrency: A BPMN transaction guarantees consistency in the sense that either all activities compete successfully, or, if some activity cannot be performed, the effects of all other successful activities are compensated. So either way, we end up in a consistent state. However, it is important to recognize that in Operaton, the consistency model for BPMN transactions is superposed on top of the consistency model for process execution. The Operaton engine executes processes in a transactional way. Concurrency is addressed using optimistic locking. In the engine BPMN error, cancel and compensation events are built on top of the same ACID transactions and optimistic locking. For example, a cancel end event can only trigger compensation if it is actually reached. It is not reached if some undeclared exception is thrown by a service task before. The effects of a compensation handler can not be committed if some other participant in the underlying ACID transaction sets the transaction to the state rollback-only. Also, when two concurrent executions reach a cancel end event, compensation might be triggered twice and fail with an optimistic locking exception. All of this is to say that when implementing BPMN transactions in the core engine, the same set of rules apply as when implementing "ordinary" processes and subprocesses. So, to effectively guarantee consistency, it is important to implement processes in a way that takes the optimistic, transactional execution model into consideration. For further information, see the documentation on [optimistic locking](../../../user-guide/process-engine/transactions-in-processes.md#optimistic-locking).
Consistency on top of ACID transactions and optimistic concurrency: A BPMN transaction guarantees consistency in the sense that either all activities complete successfully, or, if some activity cannot be performed, the effects of all other successful activities are compensated. So either way, we end up in a consistent state. However, it is important to recognize that in Operaton, the consistency model for BPMN transactions is superposed on top of the consistency model for process execution. The Operaton engine executes processes in a transactional way. Concurrency is addressed using optimistic locking. In the engine BPMN error, cancel and compensation events are built on top of the same ACID transactions and optimistic locking. For example, a cancel end event can only trigger compensation if it is actually reached. It is not reached if some undeclared exception is thrown by a service task before. The effects of a compensation handler cannot be committed if some other participant in the underlying ACID transaction sets the transaction to the state rollback-only. Also, when two concurrent executions reach a cancel end event, compensation might be triggered twice and fail with an optimistic locking exception. All of this is to say that when implementing BPMN transactions in the core engine, the same set of rules apply as when implementing "ordinary" processes and subprocesses. So, to effectively guarantee consistency, it is important to implement processes in a way that takes the optimistic, transactional execution model into consideration. For further information, see the documentation on [optimistic locking](../../../user-guide/process-engine/transactions-in-processes.md#optimistic-locking).

## Operaton Extensions

Expand Down
Loading