Skip to content

Commit

Permalink
adjust zbctl references in versioned docs (#5131)
Browse files Browse the repository at this point in the history
* technical review of zbctl replacement

* flag remaining zbctl references

* remove admonition

* add admonition to next

* backport to 8.6 and 8.7
  • Loading branch information
christinaausley authored Mar 5, 2025
1 parent cb81787 commit 797e5ce
Show file tree
Hide file tree
Showing 46 changed files with 412 additions and 1,126 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ sidebar_label: "Getting started with the CLI client"
description: "Get started with this tutorial that shows you how to interact with Camunda 8 using the community-supported CLI client and command line interface `zbctl`."
---

:::note Heads up!
This project is community-supported.

See the [announcement](reference/announcements.md#deprecation-zeebe-go-client--cli-client-zbctl) for more information.
:::

In this tutorial, you will learn how to use the [community-supported](https://github.com/camunda-community-hub) `zbctl` CLI client to interact with Camunda 8.

:::note
Expand Down
6 changes: 6 additions & 0 deletions docs/apis-tools/community-clients/cli-client/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ sidebar_label: "Quick reference"
description: "Learn how to use the community-supported CLI client and command line interface `zbctl` to interact with Camunda 8 and test a connection."
---

:::note Heads up!
This project is community-supported.

See the [announcement](reference/announcements.md#deprecation-zeebe-go-client--cli-client-zbctl) for more information.
:::

You can use the [community-supported](https://github.com/camunda-community-hub) `zbctl` command line interface to interact with Camunda 8.

After installation, a connection can be tested immediately.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@ description: "Get started with this tutorial that shows you how to interact with
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

In this tutorial, you will learn how to use the the [community-supported](https://github.com/camunda-community-hub) Go client in a Go application to interact with Camunda 8.
:::note Heads up!
This project is community-supported.

See the [announcement](reference/announcements.md#deprecation-zeebe-go-client--cli-client-zbctl) for more information.
:::

In this tutorial, you will learn how to use the [community-supported](https://github.com/camunda-community-hub) Go client in a Go application to interact with Camunda 8.

You can find a complete example on [GitHub](https://github.com/camunda/camunda-platform-get-started/tree/main/go).

Expand Down
6 changes: 6 additions & 0 deletions docs/apis-tools/community-clients/go-client/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ sidebar_label: "Quick reference"
description: "Instantiate the client by passing in the address of the cluster you want to connect to in a Go application to interact with Camunda 8."
---

:::note Heads up!
This project is community-supported.

See the [announcement](reference/announcements.md#deprecation-zeebe-go-client--cli-client-zbctl) for more information.
:::

You can use the [community-supported](https://github.com/camunda-community-hub) Zeebe Go client library to interact with Camunda 8.

## Dependencies
Expand Down
6 changes: 6 additions & 0 deletions docs/apis-tools/community-clients/go-client/job-worker.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ description: "Let's take a deeper look at job workers to handle jobs."
keywords: ["backpressure", "back-pressure", "back pressure"]
---

:::note Heads up!
This project is community-supported.

See the [announcement](reference/announcements.md#deprecation-zeebe-go-client--cli-client-zbctl) for more information.
:::

The Go client provides a job worker that handles both polling and streaming for available jobs. This allows you to focus on writing code to handle the activated jobs.

On `Open`, the job worker waits `PollInterval` milliseconds and then polls for `MaxJobsActive` jobs. It then continues with the following schedule:
Expand Down
6 changes: 3 additions & 3 deletions docs/components/modeler/desktop-modeler/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,11 @@ To produce logging output, you can also run Desktop Modeler from the command lin

You try to connect (i.e., to deploy) to a remote Zeebe instance, and Desktop Modeler tells you it "cannot find a running Zeebe."

To resolve this issue, check if you can connect to Zeebe through another client, i.e., community-supported[`zbctl`](/apis-tools/community-clients/cli-client/index.md). If that works, [further debug your Zeebe connection](#debug-zeebe-connection-issues). If that does not work, resolve the [general connection issue](#resolve-a-general-zeebe-connection-issue) first.
To resolve this issue, check if you can connect to Zeebe through another client, for example, community-supported [`zbctl`](/apis-tools/community-clients/cli-client/index.md). If that works, [further debug your Zeebe connection](#debug-zeebe-connection-issues). If that does not work, resolve the [general connection issue](#resolve-a-general-zeebe-connection-issue) first.

## Resolve a general Zeebe connection issue

You try to connect to Zeebe from both Desktop Modeler _and_ community-supported[`zbctl`](/apis-tools/community-clients/cli-client/index.md), and neither of them works. General connection failures can have a couple of reasons:
You try to connect to Zeebe from both Desktop Modeler _and_ community-supported [`zbctl`](/apis-tools/community-clients/cli-client/index.md), and neither of them works. General connection failures can have a couple of reasons:

### The (remote) Zeebe instance is not reachable

Expand All @@ -72,7 +72,7 @@ Secure connections to Zeebe require [HTTP/2 over TLS with protocol negotiation v

## Debug Zeebe connection issues

You can connect to Zeebe via community-supported[`zbctl`](/apis-tools/community-clients/cli-client/index.md) or another API client. However, connecting through Desktop Modeler fails.
You can connect to Zeebe via community-supported [`zbctl`](/apis-tools/community-clients/cli-client/index.md) or another API client. However, connecting through Desktop Modeler fails.

### Secure connection to Zeebe fails

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

:::note
This guide includes steps with community-supported[`zbctl`](/apis-tools/community-clients/cli-client/index.md).
This guide includes steps with community-supported [`zbctl`](/apis-tools/community-clients/cli-client/index.md).
:::

Every process instance created for the [`order-process.bpmn`](/bpmn/operate/order-process.bpmn) process model requires an `orderValue` so the XOR gateway evaluation will happen properly.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Lastly you'll verify that the connection to your Self-Managed Camunda 8 environm
- [kubectl (1.30+)](https://kubernetes.io/docs/tasks/tools/#kubectl) to interact with the cluster.
- [jq (1.7+)](https://jqlang.github.io/jq/download/) to interact with some variables.
- [GNU envsubst](https://www.gnu.org/software/gettext/manual/html_node/envsubst-Invocation.html) to generate manifests.
- (optional) Domain name/[hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-working-with.html) in Route53. This allows you to expose Camunda 8 and connect via [zbctl](/apis-tools/community-clients/cli-client/index.md) or [Camunda Modeler](https://camunda.com/download/modeler/).
- (optional) Domain name/[hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-working-with.html) in Route53. This allows you to expose Camunda 8 and connect via community-supported [zbctl](/apis-tools/community-clients/cli-client/index.md) or [Camunda Modeler](https://camunda.com/download/modeler/).
- A namespace to host the Camunda Platform, in this guide we will reference `camunda` as the target namespace.

### Considerations
Expand Down
55 changes: 47 additions & 8 deletions versioned_docs/version-8.6/components/concepts/messages.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,41 @@ A message is not sent to a process instance directly. Instead, the message corre

![Message Correlation](assets/message-correlation.png)

A subscription is opened when a process instance awaits a message; for example, when entering a message catch event. The message name is defined either statically in the process (e.g. `Money collected`) or dynamically as an expression. The correlation key is defined dynamically as an expression (e.g. `= orderId`). The expressions are evaluated on activating the message catch event. The results of the evaluations are used as message name and as correlation key of the subscription (e.g. `"order-123"`).
A subscription is opened when a process instance awaits a message; for example, when entering a message catch event. The message name is defined either statically in the process (e.g. `Money collected`) or dynamically as an expression. The correlation key is defined dynamically as an expression (for example, `= orderId`). The expressions are evaluated on activating the message catch event. The results of the evaluations are used as message name and as correlation key of the subscription (e.g. `"order-123"`).

When a message is published and the message name and correlation key match to a subscription, the message is correlated to the corresponding process instance. If no proper subscription is opened, the message is discarded.

A subscription is closed when the corresponding element (e.g. the message catch event), or its scope is left. After a subscription is opened, it is not updated (for example, when the referenced process instance variable is changed.)

<details>
<summary>Publish message via zbctl</summary>
<summary>Publish message via Camunda 8 REST API</summary>
<p>

```
zbctl publish message "Money collected" --correlationKey "order-123"
curl -L 'http://localhost:8080/v2/messages/publication' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"name": "Money collected",
"correlationKey": "order-123"
}'
```

See the [API reference for publish message](/apis-tools/camunda-api-rest/specifications/publish-a-message.api.mdx) for more information, including additional request fields and code samples.
When you require immediate feedback if the message was correlated to an open subscription, you can use `Correlate message` via Camunda 8 REST API. If correlation is successful it will return the first process instance key the message correlated with.

```
curl -L 'http://localhost:8080/v2/messages/correlation' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"name": "Money collected",
"correlationKey": "order-123"
}'
```

See the [API reference for correlate message](/apis-tools/camunda-api-rest/specifications/correlate-a-message.api.mdx) for more information, including additional request fields and code samples.

</p>
</details>

Expand All @@ -40,13 +61,22 @@ When a subscription is opened, it polls the buffer for a proper message. If a pr
The buffering of a message is disabled when its TTL is set to zero. If no proper subscription is open, the message is discarded.

<details>
<summary>Publish message with TTL via zbctl</summary>
<summary>Publish message with TTL via Camunda 8 REST API</summary>
<p>

```
zbctl publish message "Money collected" --correlationKey "order-123" --ttl 1h
curl -L 'http://localhost:8080/v2/messages/publication' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"name": "Money collected",
"correlationKey": "order-123",
"timeToLive": 3600000
}'
```

See the [API reference for publish message](/apis-tools/camunda-api-rest/specifications/publish-a-message.api.mdx) for more information, including additional request fields and code samples.

</p>
</details>

Expand All @@ -67,21 +97,30 @@ A message is rejected and not correlated if a message with the same name, the sa
The uniqueness check is disabled when no message ID is set.

<details>
<summary>Publish message with ID via zbctl</summary>
<summary>Publish message with message ID via Camunda 8 REST API</summary>
<p>

```
zbctl publish message "Money collected" --correlationKey "order-123" --messageId "tracking-12345"
curl -L 'http://localhost:8080/v2/messages/publication' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"name": "Money collected",
"correlationKey": "order-123",
"messageId": "tracking-12345"
}'
```

See the [API reference for publish message](/apis-tools/camunda-api-rest/specifications/publish-a-message.api.mdx) for more information, including additional request fields and code samples.

</p>
</details>

## Message correlation overview

By combining the principles of message correlation, message uniqueness, and message buffering, very different behaviors can be achieved. Please note that a message name is mandatory, so it is omitted from the table.

| Correlation key | Message Id | Time to live | Receiver type | Behavior |
| Correlation key | Message ID | Time to live | Receiver type | Behavior |
| --------------- | ---------- | ------------ | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| set | not set | set to 0 | Start event | A new instance is started if no instance with the correlation key set at start is active, see [single instance](./#single-instance). |
| set | not set | set to 0 | Intermediate event | The message is correlated if a matching subscription is active. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,34 @@ This command creates a new process instance and immediately responds with the pr
![create-process](assets/create-process.png)

<details>
<summary>Code example</summary>
<p>
Create a process instance:
<summary>Create a process instance via Camunda 8 REST API</summary>
<p>

```
zbctl create instance "order-process"
curl -L 'http://localhost:8080/v2/process-instances' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"processDefinitionKey": "2251799813685249”,
"processDefinitionVersion": 1
}'
```

Response:

```
{
"processKey": 2251799813685249,
"bpmnProcessId": "order-process",
"version": 1,
"processInstanceKey": 2251799813686019
"processDefinitionId": "order-process",
"processDefinitionVersion": 1,
"processDefinitionKey": "2251799813685249",
"processInstanceKey": "2251799813686019"
}
```

</p>
</details>
See the [API reference for process instance creation](/apis-tools/camunda-api-rest/specifications/create-process-instance.api.mdx) for more information, including additional request fields and code samples.

</p>
</details>

### Create and await results

Expand All @@ -67,32 +73,37 @@ When the client resends the command, it creates a new process instance.
:::

<details>
<summary>Code example</summary>
<p>
Create a process instance and await results:
<summary>Create a process instance and await results via Camunda 8 REST API</summary>
<p>

```
zbctl create instance "order-process" --withResult --variables '{"orderId": "1234"}'
curl -L 'http://localhost:8080/v2/process-instances' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"processDefinitionId": "order-process”,
"processDefinitionVersion": 1,
"awaitCompletion": true,
"variables": { "orderId": "1234" }
}'
```

Response:

:::note
The variables in the response depend on the process.
:::

```
{
"processKey": 2251799813685249,
"bpmnProcessId": "order-process",
"version": 1,
"processInstanceKey": 2251799813686045,
"variables": "{\"orderId\":\"1234\"}"
"processDefinitionId": "order-process",
"processDefinitionVersion": 1,
"variables": { "orderId": "1234" }
"processDefinitionKey": "2251799813685249",
"processInstanceKey": "2251799813686019",
}
```

</p>
</details>
See the [API reference for process instance creation](/apis-tools/camunda-api-rest/specifications/create-process-instance.api.mdx) for more information, including additional request fields and code samples.

</p>
</details>

Failure scenarios applicable to other commands are applicable to this command as well. Clients may not get a response in the following cases even if the process execution is completed successfully:

Expand Down Expand Up @@ -123,22 +134,29 @@ Start instructions have the same [limitations as process instance modification](
Start instructions are supported for both `CreateProcessInstance` commands.

<details>
<summary>Code example</summary>
<p>
Create a process instance starting before the 'ship_parcel' element:

```java
client.newCreateInstanceCommand()
.bpmnProcessId("order-process")
.latestVersion()
.variables(Map.of("orderId", "1234"))
.startBeforeElement("ship_parcel")
.send()
.join();
<summary>Create a process instance and start at a user-defined element</summary>
<p>

```
curl -L 'http://localhost:8080/v2/process-instances' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"processDefinitionId": "order-process”,
"processDefinitionVersion": -1,
"startInstructions": [
{
"elementId": "ship_parcel"
}
],
"variables": { "orderId": "1234" }
}'
```

See the [API reference for process instance creation](/apis-tools/camunda-api-rest/specifications/create-process-instance.api.mdx) for more information, including additional request fields and code samples.

</p>
</details>
</p>
</details>

## Events

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ Let's take a closer look at common issues and resolutions within Console.
## I cannot connect to Zeebe

- Check if your [API client](../manage-clusters/manage-api-clients.md) has the necessary rights. To interact with Zeebe, the **Scope** `Zeebe` must be set.
- Check if your credentials are configured correctly. There is a CLI tool that allows you to check the status: [`zbctl`](https://www.npmjs.com/package/zbctl). With the command `zbctl status`, you can read the topology. If this command works, the connection can be established.
- Check if your credentials are configured correctly. There is a community-supported CLI tool that allows you to check the status: [`zbctl`](https://www.npmjs.com/package/zbctl). With the command `zbctl status`, you can read the topology. If this command works, the connection can be established.
- Check if your cluster is **Healthy**: A Zeebe cluster may be temporarily unavailable. To check if your cluster is healthy, navigate to the **Clusters** tab in the top navigation. Click on the cluster to view its details for a closer view of the status over all components (Zeebe, Operate, Tasklist, Optimize).
Loading

0 comments on commit 797e5ce

Please sign in to comment.