diff --git a/static/.htaccess b/static/.htaccess
index 679ee77da75..54283271c84 100644
--- a/static/.htaccess
+++ b/static/.htaccess
@@ -100,6 +100,8 @@ RewriteRule ^docs/apis-tools/community-clients/cli-client/(.*)$ https://github.c
RewriteRule ^docs/apis-tools/community-clients/go-client/(.*)$ https://github.com/camunda-community-hub/zeebe-client-go [R=301,L]
RewriteRule ^docs/8.7/apis-tools/community-clients/cli-client/(.*)$ https://github.com/camunda-community-hub/zeebe-client-go/blob/main/cmd/zbctl/zbctl.md [R=301,L]
RewriteRule ^docs/8.7/apis-tools/community-clients/go-client/(.*)$ https://github.com/camunda-community-hub/zeebe-client-go [R=301,L]
+RewriteRule ^docs/8.6/apis-tools/community-clients/cli-client/(.*)$ https://github.com/camunda-community-hub/zeebe-client-go/blob/main/cmd/zbctl/zbctl.md [R=301,L]
+RewriteRule ^docs/8.6/apis-tools/community-clients/go-client/(.*)$ https://github.com/camunda-community-hub/zeebe-client-go [R=301,L]
# Remove meta page
RewriteRule ^meta/ / [R=301,L]
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/operate-advanced-instances-other.png b/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/operate-advanced-instances-other.png
deleted file mode 100644
index c2fa4770c14..00000000000
Binary files a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/operate-advanced-instances-other.png and /dev/null differ
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/operate-advanced-instances-pong.png b/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/operate-advanced-instances-pong.png
deleted file mode 100644
index 03fb9532fce..00000000000
Binary files a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/operate-advanced-instances-pong.png and /dev/null differ
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/operate-advanced-instances.png b/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/operate-advanced-instances.png
deleted file mode 100644
index 231073257c1..00000000000
Binary files a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/operate-advanced-instances.png and /dev/null differ
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/zeebe-modeler-advanced-process-id.png b/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/zeebe-modeler-advanced-process-id.png
deleted file mode 100644
index 19bfc52583f..00000000000
Binary files a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/zeebe-modeler-advanced-process-id.png and /dev/null differ
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/zeebe-modeler-advanced-sequence-flows.png b/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/zeebe-modeler-advanced-sequence-flows.png
deleted file mode 100644
index 7f9e5d989c3..00000000000
Binary files a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/zeebe-modeler-advanced-sequence-flows.png and /dev/null differ
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/zeebe-modeler-advanced.png b/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/zeebe-modeler-advanced.png
deleted file mode 100644
index c22b703bc36..00000000000
Binary files a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/assets/zeebe-modeler-advanced.png and /dev/null differ
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/cli-get-started.md b/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/cli-get-started.md
deleted file mode 100644
index c3401baf84e..00000000000
--- a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/cli-get-started.md
+++ /dev/null
@@ -1,192 +0,0 @@
----
-id: cli-get-started
-title: Getting started with the CLI client
-sidebar_label: "Getting started with the CLI client"
----
-
-:::note Heads up!
-This project is now 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
-The CLI client doesn't support [multi-tenancy](/self-managed/concepts/multi-tenancy.md) and can only be used when multi-tenancy is disabled.
-:::
-
-## Prerequisites
-
-- [Camunda 8 account](/guides/create-account.md)
-- [Cluster](/guides/create-cluster.md)
-- [Client credentials](/guides/setup-client-connection-credentials.md)
-- [Modeler](/guides/model-your-first-process.md)
-- [NPM environment](https://www.npmjs.com/)
-
-## Set up
-
-### Installation
-
-Quickly install via the package manager `npm`. The corresponding package is [here](https://www.npmjs.com/package/zbctl).
-
-```bash
-npm i -g zbctl
-```
-
-You can also download a binary for your operating system from the [Zeebe GitHub releases page](https://github.com/camunda/camunda/releases).
-
-### Connection settings
-
-To use `zbctl`, it is recommended to define environment variables for the connection settings:
-
-```bash
-export ZEEBE_ADDRESS='[Zeebe API]'
-export ZEEBE_CLIENT_ID='[Client ID]'
-export ZEEBE_CLIENT_SECRET='[Client Secret]'
-export ZEEBE_AUTHORIZATION_SERVER_URL='[OAuth API]'
-```
-
-When creating client credentials in Camunda 8, you have the option to download a file with the lines above filled out for you.
-
-Alternatively, use the [described flags](https://www.npmjs.com/package/zbctl#usage) (`--address`, `--clientId`, and `--clientSecret`) with the `zbctl` commands.
-
-### Test command
-
-Use the following command to verify everything is set up correctly:
-
-```bash
-zbctl status
-```
-
-As a result, you will receive a similar response:
-
-```bash
-Cluster size: 1
-Partitions count: 2
-Replication factor: 1
-Gateway version: unavailable
-Brokers:
- Broker 0 - zeebe-0.zeebe-broker-service.456637ef-8832-428b-a2a4-82b531b25635-zeebe.svc.cluster.local:26501
- Version: unavailable
- Partition 1 : Leader
- Partition 2 : Leader
-```
-
-## Advanced process
-
-Use [this process model](/bpmn/apis-tools/gettingstarted_quickstart_advanced.bpmn) for the tutorial.
-
-
-
-This process includes a service task and an XOR gateway. Select the service task and fill in the properties. Set the **Type** to `test-worker`.
-
-
-
-The worker will return a JSON object as a result, which is used to decide which path to take.
-
-Now, we can use the JSON object to route your process by filling in the condition expression on the two sequence flows after the XOR gateway.
-
-Use the following conditional expression for the **Pong** sequence flow:
-
-```bash
-=result="Pong"
-```
-
-Use the following conditional expression for the **else** sequence flow:
-
-```bash
-=result!="Pong"
-```
-
-
-
-## Deploy a process
-
-Now, you can deploy the [process](/bpmn/apis-tools/gettingstarted_quickstart_advanced.bpmn). Navigate to the folder where you saved your process.
-
-```bash
-zbctl deploy resource gettingstarted_quickstart_advanced.bpmn
-```
-
-If the deployment is successful, you'll get the following output:
-
-```bash
-{
- "key": 2251799813685493,
- "deployments": [
- {
- "process": {
- "bpmnProcessId": "camunda-cloud-quick-start-advanced",
- "version": 1,
- "processKey": 2251799813685492,
- "resourceName": "gettingstarted_quickstart_advanced.bpmn"
- }
- }
- ]
-}
-```
-
-:::note
-You will need the `bpmnProcessId` to create a new instance.
-:::
-
-## Register a worker
-
-The process uses the worker with the type `test-worker`. Register a new one by using the following command:
-
-```bash
-zbctl create worker test-worker --handler "echo {\"result\":\"Pong\"}"
-```
-
-## Start a new instance
-
-You can start a new instance with a single command:
-
-```bash
-zbctl create instance camunda-cloud-quick-start-advanced
-```
-
-As a result, you'll get the following output. This output will contain—among others—the `processInstanceKey`:
-
-```bash
-{
- "processKey": 2251799813685492,
- "bpmnProcessId": "camunda-cloud-quick-start-advanced",
- "version": 1,
- "processInstanceKey": 2251799813685560
-}
-```
-
-Navigate to **Operate** to monitor the process instance.
-
-
-
-Because the worker returns the following output, the process ends in the upper end event following the **Ping** sequence flow:
-
-```json
-{
- "result": "Pong"
-}
-```
-
-To end up in the lower end event you'll have to modify the worker to return a different result.
-Change the worker to the following:
-
-```bash
-zbctl create worker test-worker --handler "echo {\"result\":\"...\"}"
-```
-
-Creating a new instance leads to a second instance in **Operate**, which you'll note ending in the second end event following the **else** sequence flow:
-
-
-
-Next, you can connect both workers in parallel and create more process instances:
-
-```bash
-while true; do zbctl create instance camunda-cloud-quick-start-advanced; sleep 1; done
-```
-
-In **Operate**, you'll note instances ending in both end events depending on which worker picked up the job.
-
-
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/index.md b/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/index.md
deleted file mode 100644
index e3f1aec4749..00000000000
--- a/versioned_docs/version-8.6/apis-tools/community-clients/cli-client/index.md
+++ /dev/null
@@ -1,101 +0,0 @@
----
-id: index
-title: CLI client
-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 now 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.
-
-## Installation
-
-Quickly install via the package manager `npm`. The corresponding package is [here](https://www.npmjs.com/package/zbctl).
-
-```bash
-npm i -g zbctl
-```
-
-You can also download a binary for your operating system from the [Zeebe Go Client GitHub releases page](https://github.com/camunda-community-hub/zeebe-client-go/releases).
-
-## Connection settings
-
-To use `zbctl`, it is recommended to define environment variables for the connection settings:
-
-```bash
-export ZEEBE_ADDRESS='[Zeebe API]'
-export ZEEBE_CLIENT_ID='[Client ID]'
-export ZEEBE_CLIENT_SECRET='[Client Secret]'
-export ZEEBE_AUTHORIZATION_SERVER_URL='[OAuth API]'
-```
-
-For Self-Managed environment, the Zeebe API may look like `http://localhost:26500`, or `https://mydomain.com:26500` when using secure communication.
-
-When you create client credentials in Camunda 8, you have the option to download a file with the lines above filled out for you.
-
-Alternatively, use the [described flags](https://www.npmjs.com/package/zbctl#usage) (`--address`, `--clientId`, and `--clientSecret`) with the `zbctl` commands.
-
-## Usage
-
-```
-zbctl [options] [command]
-```
-
-```
-zbctl is a command line interface designed to create and read resources inside zeebe broker.
-It is designed for regular maintenance jobs such as:
- * deploying resources,
- * creating jobs and process instances
- * activating, completing or failing jobs
- * update variables and retries
- * view cluster status
-
-Usage:
- zbctl [command]
-
-Available Commands:
- activate Activate a resource
- broadcast Broadcast a signal
- cancel Cancel resource
- complete Complete a resource
- completion Generate the autocompletion script for the specified shell
- create Create resources
- delete Delete resources
- deploy Deploys new resources for each file provided
- evaluate Evaluate resources
- fail Fail a resource
- generate Generate documentation
- help Help about any command
- publish Publish a message
- resolve Resolve a resource
- set Set a resource
- status Checks the current status of the cluster
- throwError Throw an error
- update Update a resource
- version Print the version of zbctl
-
-Flags:
- --address string Specify a contact point address. If omitted, will read from the environment variable 'ZEEBE_ADDRESS' (default '127.0.0.1:26500')
- --audience string Specify the resource that the access token should be valid for. If omitted, will read from the environment variable 'ZEEBE_TOKEN_AUDIENCE'
- --authority string Overrides the authority used with TLS virtual hosting. Specifically, to override hostname verification in the TLS handshake. It does not change what host is actually connected to. If omitted, will read from the environment variable 'ZEEBE_OVERRIDE_AUTHORITY'
- --authzUrl string Specify an authorization server URL from which to request an access token. If omitted, will read from the environment variable 'ZEEBE_AUTHORIZATION_SERVER_URL' (default "https://login.cloud.camunda.io/oauth/token/")
- --certPath string Specify a path to a certificate with which to validate gateway requests. If omitted, will read from the environment variable 'ZEEBE_CA_CERTIFICATE_PATH'
- --clientCache string Specify the path to use for the OAuth credentials cache. If omitted, will read from the environment variable 'ZEEBE_CLIENT_CONFIG_PATH' (default "/Users/jonathanlukas/.camunda/credentials")
- --clientId string Specify a client identifier to request an access token. If omitted, will read from the environment variable 'ZEEBE_CLIENT_ID'
- --clientSecret string Specify a client secret to request an access token. If omitted, will read from the environment variable 'ZEEBE_CLIENT_SECRET'
- -h, --help help for zbctl
- --host string Specify the host part of the gateway address. If omitted, will read from the environment variable 'ZEEBE_HOST' (default '127.0.0.1')
- --insecure Specify if zbctl should use an unsecured connection. If omitted, will read from the environment variable 'ZEEBE_INSECURE_CONNECTION'
- --port string Specify the port part of the gateway address. If omitted, will read from the environment variable 'ZEEBE_PORT' (default '26500')
- --requestTimeout duration Specify the default timeout for all requests. Example values: 300ms, 50s or 1m (default 10s)
- --scope string Optionally specify the client token scope used when fetching credentials. If omitted, will read from the environment variable 'ZEEBE_TOKEN_SCOPE'
-
-Use "zbctl [command] --help" for more information about a command.
-```
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/java-get-started-monitor-1.gif b/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/java-get-started-monitor-1.gif
deleted file mode 100644
index ea85f37d050..00000000000
Binary files a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/java-get-started-monitor-1.gif and /dev/null differ
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/java-get-started-monitor-2.gif b/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/java-get-started-monitor-2.gif
deleted file mode 100644
index 4168440cfe8..00000000000
Binary files a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/java-get-started-monitor-2.gif and /dev/null differ
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/order-process-simple.png b/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/order-process-simple.png
deleted file mode 100644
index e21a621bb1e..00000000000
Binary files a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/order-process-simple.png and /dev/null differ
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/order-process.png b/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/order-process.png
deleted file mode 100644
index 25edc8f4f7f..00000000000
Binary files a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/assets/order-process.png and /dev/null differ
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/go-get-started.md b/versioned_docs/version-8.6/apis-tools/community-clients/go-client/go-get-started.md
deleted file mode 100644
index 7033e284410..00000000000
--- a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/go-get-started.md
+++ /dev/null
@@ -1,560 +0,0 @@
----
-id: go-get-started
-title: Getting started with the Go client
-sidebar_label: "Getting started with the Go client"
----
-
-:::note Heads up!
-This project is now community-supported.
-
-See the [announcement](reference/announcements.md#deprecation-zeebe-go-client--cli-client-zbctl) for more information.
-:::
-
-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.
-
-You can find a complete example on [GitHub](https://github.com/camunda/camunda-platform-get-started/tree/main/go).
-
-:::note
-The Go client doesn't support [multi-tenancy](/self-managed/concepts/multi-tenancy.md) and can only be used when multi-tenancy is disabled.
-:::
-
-## Prerequisites
-
-- [Camunda 8 account](/guides/create-account.md)
-- [Cluster](/guides/create-cluster.md)
-- [Client credentials](/guides/setup-client-connection-credentials.md)
-- [Go v1.21+ environment installed](https://go.dev/)
-
-## Set up a project
-
-First, we need a new Go project. To do this, complete the following steps:
-
-1. Create a new project using your IDE, or create a new Go module with the following command:
-
-```bash
-mkdir github.com/zb-user/zb-example
-cd github.com/zb-user/zb-example
-go mod init zb-user/zb-example
-```
-
-2. To use the Zeebe Go client library, run the following:
-
-```bash
-go get github.com/camunda-community-hub/zeebe-client-go/v8@v8.6.0
-```
-
-This adds the following dependency to your `go.mod`, it should look similar to this:
-
-```go
-module github.com/zb-user/zb-example
-
-go 1.21
-
-require github.com/camunda-community-hub/zeebe-client-go/v8 v8.6.0
-```
-
-3. Set the connection settings and client credentials as environment variables in your terminal:
-
-```bash
-export ZEEBE_ADDRESS='[Zeebe API]'
-export ZEEBE_CLIENT_ID='[Client ID]'
-export ZEEBE_CLIENT_SECRET='[Client Secret]'
-export ZEEBE_AUTHORIZATION_SERVER_URL='[OAuth API]'
-```
-
-:::note
-When you create client credentials in Camunda 8, you have the option to download a file with the lines above filled out for you.
-:::
-
-4. Create a `main.go` file inside the module and add the following lines to bootstrap the Zeebe client:
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "github.com/camunda-community-hub/zeebe-client-go/v8/pkg/zbc"
- "github.com/camunda-community-hub/zeebe-client-go/v8/pkg/pb"
- "os"
-)
-
-func main() {
- client, err := zbc.NewClient(&zbc.ClientConfig{
- GatewayAddress: os.Getenv("ZEEBE_ADDRESS"),
- })
-
- if err != nil {
- panic(err)
- }
-
- ctx := context.Background()
- topology, err := client.NewTopologyCommand().Send(ctx)
- if err != nil {
- panic(err)
- }
-
- for _, broker := range topology.Brokers {
- fmt.Println("Broker", broker.Host, ":", broker.Port)
- for _, partition := range broker.Partitions {
- fmt.Println(" Partition", partition.PartitionId, ":", roleToString(partition.Role))
- }
- }
-}
-
-func roleToString(role pb.Partition_PartitionBrokerRole) string {
- switch role {
- case pb.Partition_LEADER:
- return "Leader"
- case pb.Partition_FOLLOWER:
- return "Follower"
- default:
- return "Unknown"
- }
-}
-```
-
-5. Run the program.
-
-```bash
-go run main.go
-```
-
-You will note a similar output:
-
-```
-Broker 0.0.0.0 : 26501
- Partition 1 : Leader
-```
-
-## Model a process
-
-Now, we need a simple process we can deploy. Later, we will extend the process with more functionality. For now, follow the steps below:
-
-
-
-
-
-1. Open Web Modeler and create a new BPMN diagram named `order-process.bpmn`.
-
-2. Add a start event named `Order Placed` and an end event named `Order Delivered` to the diagram. Then, connect the events.
-
-
-
-3. Set the ID (the BPMN process ID) to `order-process` instead of the autogenerated value so it's easier to work with in this example.
-
-4. [Optional] Download the BPMN file to the root of the project.
-
-
-
-
-
-1. Open Desktop Modeler and create a new Camunda 8 BPMN diagram named `order-process.bpmn`.
-
-2. Add a start event named `Order Placed` and an end event named `Order Delivered` to the diagram. Then, connect the events.
-
-
-
-3. Set the ID (the BPMN process ID) to `order-process` instead of the autogenerated value so it's easier to work with in this example.
-
-4. Place the BPMN diagram in the root of the project.
-
-
-
-
-
-## Deploy a process
-
-Next, we want to deploy the modeled process to the broker.
-
-The broker stores the process under its BPMN process ID and assigns a version.
-
-
-
-
-
-Using Web Modeler, you can deploy the BPMN diagram in the UI using the **Deploy** button.
-
-Alternatively, if you took the optional step and downloaded your BPMN diagram, you can follow the instructions for Desktop Modeler for this section.
-
-
-
-
-
-Add the following to `main.go` at the bottom of `func main()`.
-
-```go
- // After the client is created (add this to the end of your func main())
- response, err := client.NewDeployResourceCommand().AddResourceFile("order-process.bpmn").Send(ctx)
- if err != nil {
- panic(err)
- }
- fmt.Println(response.String())
-```
-
-
-
-Run the program and verify the process deployed successfully.
-
-You will note a similar output:
-
-```
-key:2251799813685254 processes:{bpmnProcessId:"order-process" version:3 processDefinitionKey:2251799813685253 resourceName:"order-process.bpmn"}
-```
-
-
-
-
-## Create a process instance
-
-We are ready to create our first instance of the deployed process.
-
-A process instance is created by a specific version of the process, which can be set on creation.
-
-```go
- // After the process is deployed.
- variables := make(map[string]interface{})
- variables["orderId"] = "31243"
-
- request, err := client.NewCreateInstanceCommand().BPMNProcessId("order-process").LatestVersion().VariablesFromMap(variables)
- if err != nil {
- panic(err)
- }
-
- ctx := context.Background()
-
- msg, err := request.Send(ctx)
- if err != nil {
- panic(err)
- }
-
- fmt.Println(msg.String())
-```
-
-Run the program and verify the process instance is created. You will note an output similar to below:
-
-```
-processKey:2251799813686742 bpmnProcessId:"order-process" version:3 processInstanceKey:2251799813686744
-```
-
-## Note the process in action
-
-Want to note how the process instance is executed? Follow the steps below:
-
-1. Go to the cluster in Camunda 8 and select it.
-2. Click on the link to [Operate](/components/operate/userguide/basic-operate-navigation.md).
-3. Select the process **order process**.
-
-A process instance has now been started and finished.
-
-## Work on a task
-
-Now, we want to do some work within our process. Follow the steps below:
-
-1. Add a few service tasks to the BPMN diagram and set the required attributes.
-
-2. Extend your `main.go` file and activate a job. These are created when the process instance reaches a service task.
-
-3. Open the BPMN diagram in Modeler. Keeping in mind how you want to [deploy your model](#deploy-a-process), you can choose either Web Modeler or Desktop Modeler.
-
-4. Insert three service tasks between the start and the end event.
-
-- Name the first task `Collect Money`.
-- Name the second task `Fetch Items`.
-- Name the third task `Ship Parcel`.
-
-
-
-5. Using the properties panel **Task definition** section on the right side of the screen under the **Deploy** button, set the **type** of each task, which identifies the nature of the work to be performed.
-
-- Set the **type** of the first task to `payment-service`.
-- Set the **type** of the second task to `fetcher-service`.
-- Set the **type** of the third task to `shipping-service`.
-
-6. Additionally, for the service task `Collect Money` set a [**task-header**](/components/modeler/bpmn/service-tasks/service-tasks.md#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method.
-
-The consolidated example looks as follows:
-
-
-
-
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "github.com/camunda-community-hub/zeebe-client-go/v8/pkg/entities"
- "github.com/camunda-community-hub/zeebe-client-go/v8/pkg/worker"
- "github.com/camunda-community-hub/zeebe-client-go/v8/pkg/zbc"
- "log"
- "os"
-)
-
-const ZeebeAddr = "0.0.0.0:26500"
-
-var readyClose = make(chan struct{})
-
-func main() {
- gatewayAddr := os.Getenv("ZEEBE_ADDRESS")
- plainText:= false
-
- if (gatewayAddr == "") {
- gatewayAddr = ZeebeAddr
- plainText = true
- }
-
- zbClient, err := zbc.NewClient(&zbc.ClientConfig{
- GatewayAddress: gatewayAddr,
- UsePlaintextConnection: plainText,
- })
-
- if err != nil {
- panic(err)
- }
-
- ctx := context.Background()
-
- // deploy process happens in the Web Modeler UI
-
- // create a new process instance
- variables := make(map[string]interface{})
- variables["orderId"] = "31243"
-
- request, err := zbClient.NewCreateInstanceCommand().BPMNProcessId("order-process-4").LatestVersion().VariablesFromMap(variables)
- if err != nil {
- panic(err)
- }
-
- result, err := request.Send(ctx)
- if err != nil {
- panic(err)
- }
-
- fmt.Println(result.String())
-
- jobWorker := zbClient.NewJobWorker().JobType("payment-service").Handler(handleJob).Open()
-
- <-readyClose
- jobWorker.Close()
- jobWorker.AwaitClose()
-}
-
-func handleJob(client worker.JobClient, job entities.Job) {
- jobKey := job.GetKey()
-
- headers, err := job.GetCustomHeadersAsMap()
- if err != nil {
- // failed to handle job as we require the custom job headers
- failJob(client, job)
- return
- }
-
- variables, err := job.GetVariablesAsMap()
- if err != nil {
- // failed to handle job as we require the variables
- failJob(client, job)
- return
- }
-
- variables["totalPrice"] = 46.50
- request, err := client.NewCompleteJobCommand().JobKey(jobKey).VariablesFromMap(variables)
- if err != nil {
- // failed to set the updated variables
- failJob(client, job)
- return
- }
-
- log.Println("Complete job", jobKey, "of type", job.Type)
- log.Println("Processing order:", variables["orderId"])
- log.Println("Collect money using payment method:", headers["method"])
-
- ctx := context.Background()
- _, err = request.Send(ctx)
- if err != nil {
- panic(err)
- }
-
- log.Println("Successfully completed job")
- close(readyClose)
-}
-
-func failJob(client worker.JobClient, job entities.Job) {
- log.Println("Failed to complete job", job.GetKey())
-
- ctx := context.Background()
- _, err := client.NewFailJobCommand().JobKey(job.GetKey()).Retries(job.Retries - 1).Send(ctx)
- if err != nil {
- panic(err)
- }
-}
-```
-
-
-
-
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "github.com/camunda-community-hub/zeebe-client-go/v8/pkg/entities"
- "github.com/camunda-community-hub/zeebe-client-go/v8/pkg/worker"
- "github.com/camunda-community-hub/zeebe-client-go/v8/pkg/zbc"
- "log"
- "os"
-)
-
-const ZeebeAddr = "0.0.0.0:26500"
-
-var readyClose = make(chan struct{})
-
-func main() {
- gatewayAddr := os.Getenv("ZEEBE_ADDRESS")
- plainText:= false
-
- if (gatewayAddr == "") {
- gatewayAddr = ZeebeAddr
- plainText = true
- }
-
- zbClient, err := zbc.NewClient(&zbc.ClientConfig{
- GatewayAddress: gatewayAddr,
- UsePlaintextConnection: plainText,
- })
-
- if err != nil {
- panic(err)
- }
-
- // deploy process
- ctx := context.Background()
- response, err := zbClient.NewDeployResourceCommand().AddResourceFile("order-process-4.bpmn").Send(ctx)
- if err != nil {
- panic(err)
- }
-
- fmt.Println(response.String())
-
- // create a new process instance
- variables := make(map[string]interface{})
- variables["orderId"] = "31243"
-
- request, err := zbClient.NewCreateInstanceCommand().BPMNProcessId("order-process-4").LatestVersion().VariablesFromMap(variables)
- if err != nil {
- panic(err)
- }
-
- result, err := request.Send(ctx)
- if err != nil {
- panic(err)
- }
-
- fmt.Println(result.String())
-
- jobWorker := zbClient.NewJobWorker().JobType("payment-service").Handler(handleJob).Open()
-
- <-readyClose
- jobWorker.Close()
- jobWorker.AwaitClose()
-}
-
-func handleJob(client worker.JobClient, job entities.Job) {
- jobKey := job.GetKey()
-
- headers, err := job.GetCustomHeadersAsMap()
- if err != nil {
- // failed to handle job as we require the custom job headers
- failJob(client, job)
- return
- }
-
- variables, err := job.GetVariablesAsMap()
- if err != nil {
- // failed to handle job as we require the variables
- failJob(client, job)
- return
- }
-
- variables["totalPrice"] = 46.50
- request, err := client.NewCompleteJobCommand().JobKey(jobKey).VariablesFromMap(variables)
- if err != nil {
- // failed to set the updated variables
- failJob(client, job)
- return
- }
-
- log.Println("Complete job", jobKey, "of type", job.Type)
- log.Println("Processing order:", variables["orderId"])
- log.Println("Collect money using payment method:", headers["method"])
-
- ctx := context.Background()
- _, err = request.Send(ctx)
- if err != nil {
- panic(err)
- }
-
- log.Println("Successfully completed job")
- close(readyClose)
-}
-
-func failJob(client worker.JobClient, job entities.Job) {
- log.Println("Failed to complete job", job.GetKey())
-
- ctx := context.Background()
- _, err := client.NewFailJobCommand().JobKey(job.GetKey()).Retries(job.Retries - 1).Send(ctx)
- if err != nil {
- panic(err)
- }
-}
-```
-
-
-
-
-
-In this example, we open a [job worker](/components/concepts/job-workers.md) for jobs of type `payment-service`.
-
-The job worker will repeatedly poll for new jobs of the type `payment-service` and activate them subsequently. Each activated job will then be passed to the job handler, which implements the business logic of the job worker.
-
-The handler will then complete the job with its result or fail the job if
-it encounters a problem while processing the job.
-
-When observing the current state of the process in Operate, you can note the process instance moved from the first service task to the next one.
-
-When you run the example above, note a similar output to the following:
-
-```
-key:2251799813685256 deployments:{process:{bpmnProcessId:"order-process-4" version:1 processDefinitionKey:2251799813685255 resourceName:"order-process.bpmn"}}
-processDefinitionKey:2251799813685255 bpmnProcessId:"order-process-4" version:1 processInstanceKey:2251799813685257
-2022/04/06 16:20:59 Complete job 2251799813685264 of type payment-service
-2022/04/06 16:20:59 Processing order: 31243
-2022/04/06 16:20:59 Collect money using payment method: VISA
-2022/04/06 16:20:59 Successfully completed job
-```
-
-## What's next?
-
-- Learn more about the [concepts behind Zeebe](/components/concepts/what-is-camunda-8.md).
-- Learn more about [BPMN processes](/components/modeler/bpmn/bpmn-primer.md).
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/index.md b/versioned_docs/version-8.6/apis-tools/community-clients/go-client/index.md
deleted file mode 100644
index 7455a19818d..00000000000
--- a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/index.md
+++ /dev/null
@@ -1,117 +0,0 @@
----
-id: index
-title: "Go client"
-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 now 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
-
-To use the [Zeebe Go client library](https://github.com/camunda-community-hub/zeebe-client-go/), add the following dependency to your `go.mod`:
-
-```
-module github.com/zb-user/zb-example
-
-go 1.21
-
-require github.com/camunda-community-hub/zeebe-client-go/v8@v8.5.0
-```
-
-## Bootstrapping
-
-In Go code, instantiate the client as follows:
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "github.com/camunda-community-hub/zeebe-client-go/v8/pkg/zbc"
-)
-
-func main() {
- credsProvider, err := zbc.NewOAuthCredentialsProvider(&zbc.OAuthProviderConfig{
- ClientID: "clientId",
- ClientSecret: "clientSecret",
- Audience: "zeebeAddress",
- })
- if err != nil {
- panic(err)
- }
-
- client, err := zbc.NewClient(&zbc.ClientConfig{
- GatewayAddress: "zeebeAddress",
- CredentialsProvider: credsProvider,
- })
- if err != nil {
- panic(err)
- }
-
-
- ctx := context.Background()
- response, err := client.NewTopologyCommand().Send(ctx)
- if err != nil {
- panic(err)
- }
-
- fmt.Println(response.String())
-}
-```
-
-Let's go over this code snippet line by line:
-
-1. Create the credentials provider for the OAuth protocol. This is needed to authenticate your client.
-2. Create the client by passing in the address of the cluster we want to connect to and the credentials provider from the step above.
-3. Send a test request to verify the connection was established.
-
-The values for these settings can be taken from the connection information on the **Client Credentials** page. Note that `clientSecret` is only visible when you create the client credentials.
-
-Another (more compact) option is to pass in the connection settings via environment variables:
-
-```bash
-export ZEEBE_ADDRESS='[Zeebe API]'
-export ZEEBE_CLIENT_ID='[Client ID]'
-export ZEEBE_CLIENT_SECRET='[Client Secret]'
-export ZEEBE_AUTHORIZATION_SERVER_URL='[OAuth API]'
-```
-
-When you create client credentials in Camunda 8, you have the option to download a file with the lines above filled out for you.
-
-Given these environment variables, you can instantiate the client as follows:
-
-```go
-package main
-
-import (
- "context"
- "fmt"
- "github.com/camunda-community-hub/zeebe-client-go/v8/pkg/zbc"
- "os"
-)
-
-func main() {
- client, err := zbc.NewClient(&zbc.ClientConfig{
- GatewayAddress: os.Getenv("ZEEBE_ADDRESS"),
- })
- if err != nil {
- panic(err)
- }
-
- ctx := context.Background()
- response, err := client.NewTopologyCommand().Send(ctx)
- if err != nil {
- panic(err)
- }
-
- fmt.Println(response.String())
-}
-```
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/job-worker.md b/versioned_docs/version-8.6/apis-tools/community-clients/go-client/job-worker.md
deleted file mode 100644
index 9937a12a07d..00000000000
--- a/versioned_docs/version-8.6/apis-tools/community-clients/go-client/job-worker.md
+++ /dev/null
@@ -1,129 +0,0 @@
----
-id: job-worker
-title: "Job worker"
-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 now 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:
-
-1. If a poll did not activate any jobs, it waits for `PollInterval` milliseconds and then polls for more jobs.
-2. If a poll activated jobs, the worker submits each job to the job handler.
-3. Every time a job is handled, the worker checks if the number of unhandled jobs has dropped below the configured `PollThreshold` (rounded up) of `MaxJobsActive`. The first time this happens, it polls for more jobs.
-4. If a poll fails with an error response, a backoff strategy is applied. This strategy waits for the delay provided by the `BackoffSupplier` and polls for more jobs.
-
-For example, imagine you have 10 process instances and a single job worker configured with `MaxJobsActive = 3` and `PollThreshold = 0.3`. The job worker will first pull three jobs and begin executing them. The threshold to poll for new jobs is 1 (30% of 3 rounded up). After two jobs have completed, the threshold is reached and the job worker will poll for up to two additional jobs. This process repeats until the jobs from all 10 process instances are completed.
-
-If streaming is enabled (via `StreamEnabled`), it will also open a long-living stream over which jobs will be pushed without having to be polled. In such cases, a worker will only buffer up to `MaxJobsActive` jobs at the same time. You can then estimate its memory usage as `MaxJobsActive` times the max message size (worst case memory used by buffered, unhandled jobs) plus `Concurrency` times the max message size (worst case memory used by jobs currently being handled).
-
-You can control how many jobs are worked on in parallel via the `Concurrency` parameter. This will set how many Go routines will be spawned by the worker, which de-queues an activated job from the worker queue and calls the `Handler` function with it.
-
-## Example usage
-
-```go
-jobWorker := s.client.NewJobWorker().
- JobType(taskType).
- Handler(func(client worker.JobClient, job entities.Job) {
- // handle jobs; keep in mind this can come from different go routines
- fmt.Printf("Activated job with key: %d", job.Key)
- }).
- Timeout(time.Minute * 5).
- PollInterval(5 * time.Second).
- Concurrency(10).
- MaxJobsActive(32).
- Name(workerName).
- StreamEnabled(true).
- RequestTimeout(time.Duration(10) * time.Second).
- Open()
-
-// do more things in the meantime, then eventually close the worker
-jobWorker.Close()
-```
-
-## Backoff configuration
-
-When a poll fails with an error response, the job worker applies a backoff strategy. It waits for some time, after which it polls again for more jobs. This gives a Zeebe cluster some time to recover from a failure. In some cases, you may want to configure this backoff strategy to better fit your situation.
-
-The retry delay (i.e. the time the job worker waits after an error before the next poll for new jobs) is provided by the [`BackoffSupplier`](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/pkg/worker/backoffSupplier.go). You can replace it using the `.BackoffSupplier()` method on the [`JobWorkerBuilder`](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/pkg/worker/jobWorker_builder.go).
-
-By default, the job worker uses an exponential backoff implementation, which you can configure by making your own [`ExponentialBackoffSupplier`](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/pkg/worker/exponentialBackoffSupplier.go).
-
-The backoff strategy is especially useful for dealing with the `GRPC_STATUS_RESOURCE_EXHAUSTED` error response (refer to [gRPC technical error handling](/apis-tools/zeebe-api/technical-error-handling.md)).
-
-This error code indicates the Zeebe cluster is currently under too large of a load and has decided to reject this request.
-
-By backing off, the job worker helps Zeebe by reducing the load.
-
-:::note
-Zeebe's [backpressure mechanism](/self-managed/zeebe-deployment/operations/backpressure.md) can also be configured.
-:::
-
-## Metrics
-
-The job worker exposes metrics through a custom interface: [JobWorkerMetrics](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/pkg/worker/jobWorkerMetrics.go).
-
-:::note
-By default, job workers will not track any metrics, and it's up to the caller to specify an implementation if they wish to make use of this feature.
-:::
-
-## Job streaming
-
-Job workers are designed to regularly poll and activate jobs. It's also possible to use them in a streaming fashion, such that jobs are automatically activated and pushed downstream to workers without requiring an extra round of polling. This greatly cuts down on overall activation latency by almost completely removing the poll request.
-
-### Usage
-
-Enabling job streaming consists of toggling a single flag in the job worker builder:
-
-```go
-jobWorker := s.client.NewJobWorker().
- JobType(taskType).
- Handler(func(client worker.JobClient, job entities.Job) {
- // handle jobs; keep in mind this can come from different go routines
- fmt.Printf("Activated job with key: %d", job.Key)
- }).
- StreamEnabled(true).
- StreamRequestTimeout(4 * time.Hour)
- Open()
-```
-
-This configures the job worker to open a long-living stream between itself and a gateway, through which activated jobs will be pushed. **If the stream is closed for any reason - e.g. the gateway crashed, there is a temporary network issue, etc. - it is automatically recreated.**
-
-:::note
-It's also possible to set an overall timeout - called `streamTimeout` - which ensures the underlying long-living stream is refreshed once the timeout is reached. This is useful to trigger load balancing of your workers overtime, instead of having workers pinned to the same gateway.
-:::
-
-#### Backfilling
-
-Even with streaming enabled, job workers still occasionally poll the cluster for jobs. Due to implementation constraints, when a job is made activate-able, it is pushed out only if there exists a stream for it; if not, it remains untouched. Even if a stream is created afterwards, it remains untouched. However, if a stream exists, then streaming is always prioritized over polling.
-
-This ensures polling should not activate any new jobs, and the worker will back off and poll less often as long as it receives empty responses overtime.
-
-#### Backpressure
-
-To avoid your workers being overloaded with too many jobs, e.g. running out of memory, the Go job worker relies on the [built-in gRPC flow control mechanism](https://grpc.io/docs/guides/flow-control/). If streaming is enabled, this means the worker will never buffer more jobs than the configured `MaxJobsActive + Concurrency` parameters. For example, if `MaxJobsActive = 32` and `Concurrency = 10`, then your worker will only buffer at most 42 jobs concurrently. If this is already the case, and a 43rd job comes in, the streaming Go routine will block, thus signaling the gateway to stop sending more jobs.
-
-**If streaming is enabled, back pressure applies to both pushing and polling**. You can then use `MaxJobsActive` and `Concurrency` as a way to soft-bound the memory usage of your worker. For example, given a maximum variable payload for a job of 1MB, `MaxJobsActive = 32`, and `Concurrency = 10`, then a single worker could use up to 42MB of memory. You can estimate a worst case scenario using the configured maximum message size, as no job payload will ever exceed this.
-
-#### Proxying
-
-If you're using a reverse proxy or a load balancer between your worker and your gateway, you may need to configure additional parameters to ensure the job stream is not closed unexpectedly with an error. If you observe regular 504 timeouts, read our guide on [job streaming](/self-managed/zeebe-deployment/zeebe-gateway/job-streaming.md).
-
-By default, the Go job workers have a stream timeout of one hour. You can overwrite this by calling the `StreamRequestTimeout` of the job worker builder:
-
-```go
-var JobWorkerBuilderStep3 builder;
-// builder is set in some way
-builder.StreamRequestTimeout(30 * time.Minute);
-```
-
-## Additional resources
-
-- [Job worker reference](/components/concepts/job-workers.md)
diff --git a/versioned_docs/version-8.6/apis-tools/community-clients/index.md b/versioned_docs/version-8.6/apis-tools/community-clients/index.md
index 3cd9dc4955a..b63a9377c51 100644
--- a/versioned_docs/version-8.6/apis-tools/community-clients/index.md
+++ b/versioned_docs/version-8.6/apis-tools/community-clients/index.md
@@ -30,10 +30,10 @@ In addition to the core Camunda-maintained clients, there are a number of commun
- [Ballerina](https://github.com/camunda-community-hub/ballerina-zeebe)
- [C#](c-sharp.md)
-- [CLI](cli-client/index.md)
+- [CLI](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/cmd/zbctl/zbctl.md)
- [Delphi](https://github.com/camunda-community-hub/DelphiZeeBeClient)
- [EJB](https://github.com/camunda-community-hub/zeebe-ejb-client)
-- [Go](go-client/index.md)
+- [Go](https://github.com/camunda-community-hub/zeebe-client-go)
- [Micronaut](https://github.com/camunda-community-hub/micronaut-zeebe-client)
- [Python](python.md)
- [Ruby](ruby.md)
diff --git a/versioned_docs/version-8.6/components/modeler/desktop-modeler/troubleshooting.md b/versioned_docs/version-8.6/components/modeler/desktop-modeler/troubleshooting.md
index 62a051613ce..d3e87e0f027 100644
--- a/versioned_docs/version-8.6/components/modeler/desktop-modeler/troubleshooting.md
+++ b/versioned_docs/version-8.6/components/modeler/desktop-modeler/troubleshooting.md
@@ -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, 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.
+To resolve this issue, check if you can connect to Zeebe through another client, for example, community-supported [`zbctl`](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/cmd/zbctl/zbctl.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`](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/cmd/zbctl/zbctl.md), and neither of them works. General connection failures can have a couple of reasons:
### The (remote) Zeebe instance is not reachable
@@ -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`](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/cmd/zbctl/zbctl.md) or another API client. However, connecting through Desktop Modeler fails.
### Secure connection to Zeebe fails
diff --git a/versioned_docs/version-8.6/components/operate/userguide/resolve-incidents-update-variables.md b/versioned_docs/version-8.6/components/operate/userguide/resolve-incidents-update-variables.md
index 3324790d9cc..c7067c7170b 100644
--- a/versioned_docs/version-8.6/components/operate/userguide/resolve-incidents-update-variables.md
+++ b/versioned_docs/version-8.6/components/operate/userguide/resolve-incidents-update-variables.md
@@ -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`](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/cmd/zbctl/zbctl.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.
diff --git a/versioned_docs/version-8.6/self-managed/setup/deploy/amazon/amazon-eks/eks-helm.md b/versioned_docs/version-8.6/self-managed/setup/deploy/amazon/amazon-eks/eks-helm.md
index 33c30ed4625..750709f7b3e 100644
--- a/versioned_docs/version-8.6/self-managed/setup/deploy/amazon/amazon-eks/eks-helm.md
+++ b/versioned_docs/version-8.6/self-managed/setup/deploy/amazon/amazon-eks/eks-helm.md
@@ -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 community-supported [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](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/cmd/zbctl/zbctl.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
diff --git a/versioned_docs/version-8.6/self-managed/zeebe-deployment/security/secure-client-communication.md b/versioned_docs/version-8.6/self-managed/zeebe-deployment/security/secure-client-communication.md
index 14b8747d95d..b864c4135cb 100644
--- a/versioned_docs/version-8.6/self-managed/zeebe-deployment/security/secure-client-communication.md
+++ b/versioned_docs/version-8.6/self-managed/zeebe-deployment/security/secure-client-communication.md
@@ -120,7 +120,7 @@ There is one caveat: in order for the client to accept this self-signed certific
Here we will describe a few ways the clients and gateway could be misconfigured and what those errors look like. Hopefully, this will help you recognize these situations and provide an easy fix.
:::note
-`zbctl` is a [community-supported client](/apis-tools/community-clients/cli-client/index.md).
+`zbctl` is a [community-supported client](https://github.com/camunda-community-hub/zeebe-client-go/blob/main/cmd/zbctl/zbctl.md).
:::
### TLS is enabled in `zbctl` but disabled in the gateway
diff --git a/versioned_sidebars/version-8.6-sidebars.json b/versioned_sidebars/version-8.6-sidebars.json
index ef92da31de8..9ff0bf8ccc9 100644
--- a/versioned_sidebars/version-8.6-sidebars.json
+++ b/versioned_sidebars/version-8.6-sidebars.json
@@ -1682,18 +1682,7 @@
"apis-tools/community-clients/python",
"apis-tools/community-clients/ruby",
"apis-tools/community-clients/rust",
- "apis-tools/community-clients/quarkus",
- {
- "CLI client": [
- "apis-tools/community-clients/cli-client/index",
- "apis-tools/community-clients/cli-client/cli-get-started"
- ],
- "Go client": [
- "apis-tools/community-clients/go-client/index",
- "apis-tools/community-clients/go-client/go-get-started",
- "apis-tools/community-clients/go-client/job-worker"
- ]
- }
+ "apis-tools/community-clients/quarkus"
]
}
]