> For the complete documentation index, see [llms.txt](https://docs.zeliot.in/condense/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zeliot.in/condense/condense-app-getting-started/pipelines.md).

# Pipelines

Overview&#x20;

A Pipeline in Condense is the visual and functional representation of data flow between deployed connectors, transforms, and utilities inside a workspace. \
It is automatically materialized when a connector or transform is deployed and configured with its environment parameters. \
The pipeline canvas displays these deployed components as blocks, with lines between them representing live topic-based data flows.&#x20;

Pipelines help:&#x20;

* Visualize and manage real-time event flows&#x20;
* Understand relationships between sources, processing steps, and sinks&#x20;
* Monitor the state of each component in the context of the overall data flow&#x20;
* Ensure that topic connections between components are correctly mapped

## How Pipelines Work in Condense&#x20;

* Auto-Materialization: A pipeline is not manually created. It appears automatically when at least one connector or transform is deployed in a workspace.&#x20;
* Canvas Representation:&#x20;
* Each deployed connector, transform, or utility appears as a block.&#x20;
* Lines between blocks are drawn based on matching output topics (from one block) to input topics (of another block).&#x20;
* Multiple blocks can publish to or subscribe from the same topic, enabling branching or merging flows.&#x20;
* Execution Model:&#x20;
* Each block operates independently, processing messages from Kafka topics.&#x20;
* There is no central “pipeline engine”; data movement follows Kafka’s publish–subscribe model.&#x20;
* The pipeline view is a real-time reflection of deployed components and their topic mappings.&#x20;

<figure><img src="/files/ULZGKpLJh4zBVGHOiqVw" alt=""><figcaption></figcaption></figure>

## Configuring Components in a Pipeline&#x20;

To have a component appear in the pipeline:&#x20;

1. Configure the Connector or Transform&#x20;
   1. Provide environment variables (connection endpoints, credentials, topic mapping, etc.).&#x20;
   2. Configure authentication if required (API keys, tokens, certificates).&#x20;
   3. Define input and/or output topics.&#x20;
2. Deploy the Component&#x20;
   1. Once deployed, the component block will appear on the pipeline canvas.&#x20;
   2. If its output topic matches the input topic of another deployed component, Condense will draw a connection line.&#x20;

## Updating a Pipeline&#x20;

When you update any deployed component:&#x20;

* Adding a Component&#x20;
  * A new block is added to the canvas after deployment.&#x20;
  * Any topic that matches existing blocks will automatically create new connections.&#x20;
* Changing Topic Configuration&#x20;
  * New matches: Additional connections are drawn between blocks.&#x20;
  * Removed matches: Lines are removed if topics no longer align.&#x20;
* Deleting a Component&#x20;
  * Removes the block from the canvas.&#x20;
  * Associated Kafka topics remain unless explicitly deleted in the configuration.&#x20;

## Viewing Component Details&#x20;

Clicking a block on the pipeline canvas opens its Component Detail Panel, which provides:&#x20;

* Status: Running, stopped, error state&#x20;
* Version: Active code or configuration version&#x20;
* Topics: Subscribed (input) and published (output) topics&#x20;
* Metrics: Throughput, error counts, processing latency&#x20;
* Logs: Recent operational logs for troubleshooting&#x20;
* Actions: Restart, redeploy, edit configuration, or delete&#x20;

## Key Features <a href="#id-2.-key-features" id="id-2.-key-features"></a>

### **Node Details Panel**

When a node (e.g., a connector transform) is clicked, a detailed section opens with:

<figure><img src="/files/W9YcX9w707VJWqCqBXmA" alt=""><figcaption></figcaption></figure>

* **Connector Information**: Name, category, type, and status (e.g., `Teltonika` as a `Input` connector with category as `Telematics Device` type and status as `Running` ).
* **Kafka Topic Information**: Input and output topics configured by the user for the deployment of the connector.

### **Real-Time Monitoring**

* Displays real-time metrics for each node, such as resource utilization (memory and CPU utilization).

<figure><img src="/files/bMT22PXuMLJLVLZX6qRr" alt=""><figcaption></figcaption></figure>

* Visual indicators (e.g., colour-coded status for running, stopped, etc ) to quickly identify issues

<figure><img src="/files/6RK1F6JqTlk3tbPxrrNb" alt=""><figcaption></figcaption></figure>

### **Logs and Debugging**

* Access detailed logs for each node to track activities and troubleshoot issues.
* It supports **real-time log streaming** with customizable intervals (e.g., 5 seconds by default) and allows users to **play**, **stop**, and **control** the flow of logs for better monitoring and debugging.

<figure><img src="/files/uAPWAY1tk9EBk7mvLJOM" alt=""><figcaption></figcaption></figure>

### **Edit Configurations of deployed connectors / Transforms**

<figure><img src="/files/UzRPb8l3N1pqOVOvtL1C" alt=""><figcaption></figcaption></figure>

After a system or pipeline is deployed, issues or bugs may be discovered that require adjustments to ensure smooth operation. The **Edit Configurations** functionality allows users to resolve these problems by correcting misconfigurations.

#### **Types of Edit Configurations**

Edit Configurations are categorized into two distinct types, each serving specific use cases:

#### **Edit Configurations for Custom Transform as a Connector**

Step 1: Accessing the Edit Configuration Page

1. Navigate to the **Pipeline** section where the **custom transform** connector is deployed.
2. Click on the **custom transform** connector card that you want to “Edit”.
3. Click on the **Edit Configuration** tab to make changes.

Step 2: Editing the Configuration Fields

1. All the configurations associated with the custom transform connector are populated.
2. Make changes to the configuration field values as required.

{% hint style="info" %}

#### Example

\
**Title**

The current title is set to **data-validator**. If you need to change the title, enter the new title in the **Title** field.

\
**Port Number**

The current port number is set to **9000**. If you need to change the port number, enter the new port number in the **Port Number** field.
{% endhint %}

Step 3: Saving or Cancelling Changes

**Save Changes**:

If you are satisfied with the changes, click the **Save Changes** button to apply the new configurations. Note that once you save, the previously added configurations will be overwritten.

**Cancel**

If you do not wish to save the changes, click the **Cancel** button to exit without making any modifications.

#### **Edit Configurations for Telematics Device Type**

Step 1: Accessing the Edit Configuration Page

1. Navigate to the **Pipeline** section where the **telematics device type** connector is deployed.
2. Click on the **telematics device type** connector card that you want to “Edit”.
3. Click on the **Edit Configuration** tab to make changes.

Step 2: Editing the Configuration Fields

1. All the configurations associated with the telematics device type connector are populated.
2. Make changes to the configuration field values as required.

{% hint style="info" %}
**Example**&#x20;

**Title**

The current title is set to **data-validator**. If you need to change the title, enter the new title in the **Title** field.

**Output Topic**

The current output topic is set to **user data**. If you need to change the output topic, enter the new output topic in the **output topic** field.
{% endhint %}

Step 3: Saving or Cancelling Changes

**Save Changes**

If you are satisfied with the changes, click the **Save Changes** button to apply the new configurations. Note that once you save, the previously added configurations will be overwritten.

**Cancel**

If you do not wish to save the changes, click the **Cancel** button to exit without making any modifications.

### **Delete Connector**

<figure><img src="/files/FDqXbK40Zi3DbeNXHdXM" alt=""><figcaption></figcaption></figure>

The **Delete Connector** functionality allows users to remove a connector that is no longer needed or is causing issues in the pipeline. However, deleting a connector can have significant consequences, including:

1. **Disruption of Data Flow**: Removing a connector may break the flow of data in the pipeline, affecting downstream processes and applications.
2. **System Integrity**: Deleting a connector without proper consideration can lead to errors or failures in deployed applications that rely on the connector.
3. **Resource Cleanup**: Deleting unused or obsolete connectors helps free up system resources, such as memory and CPU, improving overall system performance.

### **Steps to Delete a Connector**

Step 1: Access the Connector Information\
Navigate to the **Pipeline** section where the connector that you wish to delete is listed.

Step 2: Confirm the Connector to Delete\
Click on the **Delete Connector** option associated with the connector.

Step 3: Review the Warning Message

{% hint style="danger" %} <mark style="color:red;">**A warning message will appear, stating:**</mark>\
\
"***Are you sure you want to delete the connector Title?***"\
\
"***If you delete the Connector title, you might break the flow of data in the pipeline and might cause problems in your deployed applications.***"
{% endhint %}

Carefully read the warning to understand the potential impact of deleting the connector.

#### Step 4: Proceed or Cancel  **Delete Connector** If you are certain that deleting the connector will not affect your system, click **Delete Connector** to proceed.

**Cancel**\
If you are unsure or want to reconsider, click **Cancel** to abort the deletion process.

## Roles and Permissions in Pipelines&#x20;

Only workspace members with appropriate roles can modify pipelines:&#x20;

|                 Operation                | Admin | Maintainer | Developer | Viewer |
| :--------------------------------------: | :---: | :--------: | :-------: | :----: |
|        Deploy pre-built connectors       |   ✅   |      ✅     |     ❌     |    ❌   |
|    Deploy custom connectors/transforms   |   ✅   |      ✅     |     ❌     |    ❌   |
| Configure deployed connectors/transforms |   ✅   |      ✅     |     ❌     |    ❌   |
|        Delete deployed components        |   ✅   |      ✅     |     ❌     |    ❌   |
|      View pipelines and connections      |   ✅   |      ✅     |     ✅     |    ✅   |
|     View component logs/configuration    |   ✅   |      ✅     |     ✅     |    ✅   |

## Monitoring Pipelines&#x20;

From the pipeline view, you can:&#x20;

* See the health status of each component&#x20;
* Inspect live throughput and latency metrics&#x20;
* Identify broken or disconnected topic links&#x20;
* Access logs for deployed connectors and transforms&#x20;
* Track active vs. idle topic flows&#x20;

## Best Practices&#x20;

* Use clear topic naming to make the pipeline canvas self-explanatory.&#x20;
* Group related connectors and transforms logically to simplify understanding.&#x20;
* Avoid unused topic links to reduce visual clutter.&#x20;
* Regularly check component logs to catch issues early.&#x20;
* Document the pipeline purpose in the workspace for long-term maintainability.&#x20;

## Common Pitfalls and How to Avoid Them&#x20;

1. Misaligned Topic Names \
   **Avoidance**: Double-check topic mappings in each component’s configuration to ensure intended connections appear.&#x20;
2. Unused Components Left Running \
   **Avoidance**: Remove or disable unused connectors and transforms to prevent unnecessary processing and costs.&#x20;
3. Overcrowded Canvas \
   **Avoidance**: Use multiple workspaces or separate flows logically when a single pipeline becomes visually dense.&#x20;

## Related Links&#x20;

* [Connectors](/condense/condense-app-getting-started/connectors.md)&#x20;
* [Transforms & Utilities ](/condense/condense-app-getting-started/transforms.md)
* [Workspace](/condense/condense-app-getting-started/workspaces.md) &#x20;
* [RBAC](/condense/condense-app-getting-started/role-based-access-control-rbac.md) &#x20;
