diff --git a/docs/developer-guides/building-workflows.mdx b/docs/developer-guides/building-workflows.mdx
index 4d74bfe1..259bb5d1 100644
--- a/docs/developer-guides/building-workflows.mdx
+++ b/docs/developer-guides/building-workflows.mdx
@@ -24,34 +24,34 @@ A workflow definition consists of a collection of tasks and operators and specif
The control structures and operations in your Conductor workflow are implemented as tasks. Here are the tasks available for managing the flow of execution:
* Conditional flow
- * **Switch**—Execute tasks conditionally, like an *if…else…* statement.
+ * **[Switch](../reference-docs/operators/switch)**—Execute tasks conditionally, like an *if…else…* statement.
* Looping flow
- * **Do While**—Execute tasks repeatedly, like a *do…while…* statement.
+ * **[Do While](../reference-docs/operators/do-while)**—Execute tasks repeatedly, like a *do…while…* statement.
* Parallel flows
- * **Fork**—Execute a static number of tasks in parallel.
- * **Dynamic Fork**—Execute a dynamic number of tasks in parallel.
- * **Join**—Join the forks after a Fork or Dynamic Fork before proceeding to the next task.
- * **Start Workflow**—Asynchronously start another workflow.
+ * **[Fork](../reference-docs/operators/fork-join)**—Execute a static number of tasks in parallel.
+ * **[Dynamic Fork](../reference-docs/operators/dynamic-fork)**—Execute a dynamic number of tasks in parallel.
+ * **[Join](../reference-docs/operators/join)**—Join the forks after a Fork or Dynamic Fork before proceeding to the next task.
+ * **[Start Workflow](../reference-docs/operators/start-workflow)**—Asynchronously start another workflow.
* Jumps or state changes in flow
- * **Terminate**—Terminate the current workflow, like a *return* statement.
- * **Sub Workflow**—Synchronously start another workflow, like a subroutine.
- * **Terminate Workflow**—Terminate another ongoing workflow.
- * **Update Task**—Update the status of another ongoing task.
+ * **[Terminate](../reference-docs/operators/terminate)**—Terminate the current workflow, like a *return* statement.
+ * **[Sub Workflow](../reference-docs/operators/sub-workflow)**—Synchronously start another workflow, like a subroutine.
+ * **[Terminate Workflow](../reference-docs/operators/terminate-workflow.md)**—Terminate another ongoing workflow.
+ * **[Update Task](../reference-docs/system-tasks/update-task)**—Update the status of another ongoing task.
* State querying
- * **Get Workflow**—Get the execution details of another ongoing workflow.
+ * **[Get Workflow](../reference-docs/operators/get-workflow)**—Get the execution details of another ongoing workflow.
* Waits in flow
- * **Wait**—Pause the current workflow until a set time, duration, or signal is received.
- * **Wait for Webhook**—Pause the current workflow for an incoming webhook signal.
- * **Human**–Pause the current workflow for user input before proceeding to the next task.
+ * **[Wait](../reference-docs/operators/wait)**—Pause the current workflow until a set time, duration, or signal is received.
+ * **[Wait for Webhook](../reference-docs/system-tasks/wait-for-webhook)**—Pause the current workflow for an incoming webhook signal.
+ * **[Human](../reference-docs/operators/human)**–Pause the current workflow for user input before proceeding to the next task.
* Dynamic tasks in flow
- * **Dynamic**—Execute a task dynamically, like a function pointer.
+ * **[Dynamic](../reference-docs/operators/dynamic)**—Execute a task dynamically, like a function pointer.
### For assigning variables
In general, variables are bounded within each task and passed along in the workflow as necessary. However, you can also handle variables or secrets at a global environment or workflow level.
-* **Set Variable**—Create or update workflow variables.
-* **Update Secret**—Create or update secrets in your Conductor cluster.
+* **[Set Variable](../reference-docs/operators/set-variable)**—Create or update workflow variables.
+* **[Update Secret](../reference-docs/system-tasks/update-secret)**—Create or update secrets in your Conductor cluster.
### For execution logic
@@ -60,26 +60,26 @@ In most common cases, you can make use of existing Conductor features instead of
| Use Case | Task to Use |
| -------------------------------------------------------------------------------------------- | --------------------------------------- |
-| Call an API or HTTP endpoint | HTTP |
-| Poll an API or HTTP endpoint | HTTP Poll |
-| Publish or consume events | Event |
-| Clean or transform JSON data | JSON JQ |
-| Modify SQL databases | JDBC |
-| Execute JavaScript scripts | Inline |
-| Evaluate and retrieve data in spreadsheets | Business Rule |
-| Get authorized using a signed JWT | Get Signed JWT |
-| Orchestrate human input in the loop | Human |
-| Query data from Conductor Search API or Metrics | Query Processor |
-| Send alerts to Opsgenie | Opsgenie |
-| Retrieve text or media content from a URL | Get Document |
-| Generate text embeddings | Generate Embeddings |
-| Store text embeddings in a vector database | Store Embeddings |
-| Generate and store text embeddings in a vector database | Index Text |
-| Chunk, generate, and store text or media embeddings in a vector database | Index Document |
-| Retrieve data from a vector database | Get Embeddings |
-| Retrieve data from a vector database based on a search query | Search Index |
-| Generate text from an LLM based on a defined prompt | Text Complete |
-| Generate text from an LLM based on a user query and additional system/assistant instructions | Chat Complete |
+| Call an API or HTTP endpoint | [HTTP](../reference-docs/system-tasks/http) |
+| Poll an API or HTTP endpoint | [HTTP Poll](../reference-docs/system-tasks/http-poll) |
+| Publish or consume events | [Event](../reference-docs/system-tasks/event) |
+| Clean or transform JSON data | [JSON JQ](../reference-docs/system-tasks/jq-transform) |
+| Modify SQL databases | [JDBC](../reference-docs/system-tasks/jdbc) |
+| Execute JavaScript scripts | [Inline](../reference-docs/system-tasks/inline) |
+| Evaluate and retrieve data in spreadsheets | [Business Rule](../reference-docs/system-tasks/business-rule) |
+| Get authorized using a signed JWT | [Get Signed JWT](../reference-docs/system-tasks/get-signed-jwt) |
+| Orchestrate human input in the loop | [Human](../reference-docs/operators/human) |
+| Query data from Conductor Search API or Metrics | [Query Processor](../reference-docs/system-tasks/query-processor) |
+| Send alerts to Opsgenie | [Opsgenie](../reference-docs/system-tasks/opsgenie) |
+| Retrieve text or media content from a URL | [Get Document](../reference-docs/system-tasks/opsgenie) |
+| Generate text embeddings | [Generate Embeddings](../reference-docs/ai-tasks/llm-generate-embeddings) |
+| Store text embeddings in a vector database | [Store Embeddings](../reference-docs/ai-tasks/llm-store-embeddings) |
+| Generate and store text embeddings in a vector database | [Index Text](../reference-docs/ai-tasks/llm-index-text) |
+| Chunk, generate, and store text or media embeddings in a vector database | [Index Document](../reference-docs/ai-tasks/llm-index-document) |
+| Retrieve data from a vector database | [Get Embeddings](../reference-docs/ai-tasks/llm-get-embeddings) |
+| Retrieve data from a vector database based on a search query | [Search Index](../reference-docs/ai-tasks/llm-search-index) |
+| Generate text from an LLM based on a defined prompt | [Text Complete](../reference-docs/ai-tasks/llm-text-complete) |
+| Generate text from an LLM based on a user query and additional system/assistant instructions | [Chat Complete](../reference-docs/ai-tasks/llm-chat-complete) |
diff --git a/docs/developer-guides/caching-task-outputs.md b/docs/developer-guides/caching-task-outputs.md
index 72020e81..b8af8506 100644
--- a/docs/developer-guides/caching-task-outputs.md
+++ b/docs/developer-guides/caching-task-outputs.md
@@ -4,7 +4,7 @@ slug: "../faqs/task-cache-output"
# Caching Task Outputs
-Some task types support caching, which saves task outputs for reuse in subsequent tasks. This feature can be configured in the task configuration.
+Some task types support caching, which saves task outputs for reuse in subsequent task executions. This feature can be configured in the task configuration.
**To cache task output:**
1. In your Orkes Conductor cluster, go to **Definitions** > **Workflow** and select a workflow.
diff --git a/docs/getting-started/quickstart-index.md b/docs/getting-started/quickstart-index.md
index bb34bc54..e21d8a97 100644
--- a/docs/getting-started/quickstart-index.md
+++ b/docs/getting-started/quickstart-index.md
@@ -17,7 +17,7 @@ In these quickstarts, you will learn the basics of developing with Conductor:
4. How to debug workflow
:::tip
-Familiarize yourself with the [Core Concepts](../core-concepts) in Conductor before diving into our quickstarts.
+Familiarize yourself with the [Core Concepts](core-concepts) in Conductor before diving into our quickstarts.
:::
With Orkes’ suite of SDKs, APIs, and Orkes Platform, you can mix-and-match our products to develop with Conductor.
diff --git a/docs/sdks/java.md b/docs/sdks/java.md
index ba7f281e..99781312 100644
--- a/docs/sdks/java.md
+++ b/docs/sdks/java.md
@@ -1,9 +1,12 @@
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
import versions from '../../codeblocks/versions.json'
import CodeBlock from '@theme/CodeBlock';
# Orkes Conductor Java SDK
-Orkes Conductor Java SDK is maintained here: https://github.com/orkes-io/orkes-conductor-client
+- Orkes Conductor Java SDK (old) is maintained here: https://github.com/orkes-io/orkes-conductor-client
+- Orkes Conductor Java SDK v4 is maintained here: https://github.com/conductor-oss/conductor/tree/main/conductor-clients/java/conductor-java-sdk
## Set Up Conductor Java SDK
@@ -13,15 +16,52 @@ Add `orkes-conductor-client` dependency to your project.
For Gradle-based projects, modify the `build.gradle` file in the project directory by adding the following line to the dependencies block in that file:
+
+
+
+```java
+implementation 'org.conductoross:conductor-client:4.0.0'
+implementation 'io.orkes:orkes-conductor-client:4.0.0'
+```
+
+
+
+
+
```java
implementation 'io.orkes.conductor:orkes-conductor-client:2.0.1'
```
+
+
+
+
### Maven
For Maven-based projects, modify the `pom.xml` file in the project directory by adding the following XML snippet within the `dependencies` section:
-```shell
+
+
+
+
+```xml
+
+ org.conductoross
+ conductor-client
+ 4.0.0
+
+
+ io.orkes
+ orkes-conductor-client
+ 4.0.0
+
+```
+
+
+
+
+
+```xml
io.orkes.conductor
orkes-conductor-client
@@ -29,6 +69,11 @@ For Maven-based projects, modify the `pom.xml` file in the project directory by
```
+
+
+
+
+
## Hello World Application Using Conductor
In this section, we will create a "Hello World" application that executes a "greetings" workflow managed by Conductor.