---
title: Single Hub and Multi-Spoke Deployment Scenario
slug: litmusedge/edge-cascading-v2-deploy
docTags: 
createdAt: 2026-01-27T19:00:31.604Z
---

This example shows you how to configure a hub and spoke Edge Cascading architecture where multiple spoke instances in the OT layer stream data to a single hub instance in the DMZ layer.

# Scenario

A manufacturing facility has two production lines, each with its own Litmus Edge instance collecting data from PLCs, sensors, and SCADA systems. The facility needs to aggregate this data in a DMZ layer before publishing to cloud services and enterprise systems.

## Architecture

In this example:

- **LE Coll 1** (spoke): Collects data from Production Line 1 devices
- **LE Coll 2** (spoke): Collects data from Production Line 2 devices
- **LE 3 - DMZ** (hub): Aggregates data from both production lines and publishes to cloud services

![](https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/SobouH58DZOPLb3v-cYSN_image.png)

## Network Topology

- **OT Network**: LE Coll 1 and LE Coll 2 are deployed at Level 2/3
- **DMZ Network**: LE DMZ is deployed in the DMZ layer
- **Firewall**: Port 7422 is open on the DMZ firewall for Hub access
- **Connection Direction**: Spoke instances initiate outbound connections to the hub (no inbound connections required in OT)

# Configuration Workflow

To configure the hub and spoke architecture:

1. Enable Edge Cascading v2 on all instances.
2. Configure LE DMZ as a Hub instance.
3. Create two accounts on LE DMZ (one for each production line).
4. Configure firewall rules on LE DMZ.
5. Copy account tokens from LE DMZ.
6. Configure LE Coll 1 and LE Coll 2 as spoke instances.
7. Add stream connections on both spoke instances.
8. Verify connections and data flow.

:::hint{type="info"}
**Note:&#x20;**&#x49;n this example, account permissions are defined with topics which may not existing in your Litmus Edge Instance(s). Please define account permissions with topics that are present in your Spoke Litmus Edge Instances.
:::

# Step-by-Step Configuration

## Step 1: Enable Edge Cascading v2 on All Instances

On each Litmus Edge instance (LE Coll 1, LE Coll 2, and LE DMZ):

1. Navigate to **DataHub** > **Edge Cascading**.
2. Set **Enable Litmus Edge Cascading Configuration** to enabled.

## Step 2: Configure LE DMZ as Hub

### Set Instance Type

On **LE DMZ**:

1. Navigate to **DataHub** > **Edge Cascading**.
2. Click the **Instance Type** dropdown and select **Hub**.
3. Click **Apply** and then **Proceed**.

### Create Account for Production Line 1

On **LE DMZ**, create an account for LE Coll 1:

1. Click the **Accounts** tab.
2. Click **Add Account&#x20;**&#x61;nd enter `Line1_Collector` in **Account Name&#x20;**&#x61;nd click **Apply**.
3. Click the **Action menu** (three dots) for the Line1\_Collector account and select **Edit**.
4. Add the following topics:
   - `devicehub.alias.PLC1.>`
   - `devicehub.alias.Sensor1.>`
5. In **Prefix**, enter `from_Line1`.
6. Click **Apply** to save the configuration.

### 2.3: Create Account for Production Line 2

On **LE DMZ**, create an account for LE Coll 2:

1. Click **Add Account**.
2. In **Account Name**, enter `Line2_Collector` and click **Apply**.
3. Click the **Action menu** (three dots) for the Line2\_Collector account and select **Edit**.
4. Add the following topics:
   - `devicehub.alias.PLC2.>`
   - `devicehub.alias.Sensor2.>`
5. In **Prefix**, enter `from_Line2`.
6. Click **Apply** to save the configuration.

### 2.4: Restart Message Broker

On **LE DMZ**:

1. Click **Restart** to activate both accounts.
2. Wait for the status to show **Connected** with a green indicator.

### 2.5: Configure Firewall Rule

On **LE DMZ**:

1. Navigate to **System** > **Network** > **Firewall** > **Inbound Rules**.
2. Click **Add Rule**.
3. Enter the following details:
   - **Port**: 7422
   - **Protocol**: TCP
   - **Interface**: Select your DMZ interface (e.g., eth0)
   - **Description**: Edge Cascading Hub inbound access
4. Click **Add Rule**.

### 2.6: Copy Account Tokens

On **LE DMZ**:

1. From the **Accounts** tab, click the **Action menu** for Line1\_Collector and select **View Token**.
2. Click **Copy** and save the token (you will use it on LE Coll 1).
3. Repeat for Line2\_Collector and save the token (you will use it on LE Coll 2).

## Step 3: Configure LE Coll 1 as Spoke

### 3.1: Set Instance Type

On **LE Coll 1**:

1. Navigate to **DataHub** > **Edge Cascading**.
2. Click the **Instance Type** dropdown and select **Spoke**.
3. Click **Apply** and then **Proceed**.

### 3.2: Add Stream Connection

On **LE Coll 1**:

1. In the **Streams** tab, click **Add Stream**.
2. Enter the following details:
   - **Token**: Paste the token from the Line1\_Collector account
   - **Enable TLS**: Leave unchecked (unless TLS is configured)
3. Click **Add Stream**.

### 3.3: Apply and Verify Connection

On **LE Coll 1**:

1. Click **Restart** to apply the stream configuration.
2. Verify the status shows **Connected** with a green indicator.

## Step 4: Configure LE Coll 2 as Spoke

### 4.1: Set Instance Type

On **LE Coll 2**:

1. Navigate to **DataHub** > **Edge Cascading**.
2. Click the **Instance Type** dropdown and select **Spoke**.
3. Click **Apply** and then **Proceed**.

### 4.2: Add Stream Connection

On **LE Coll 2**:

1. In the **Streams** tab, click **Add Stream**.
2. Enter the following details:
   - **Stream Name**: to\_DMZ\_Hub
   - **Token**: Paste the token from the Line2\_Collector account
   - **Enable TLS**: Leave unchecked (unless TLS is configured)
3. Click **Add Stream**.

### 4.3: Apply and Verify Connection

On **LE Coll 2**:

1. Click **Restart** to apply the stream configuration.
2. Verify the status shows **Connected** with a green indicator.

## Step 5: Verify Data Flow on Hub

On **LE DMZ**, verify that data from both production lines is flowing:

### Test Data in Analytics

1. Navigate to **Analytics**.
2. Create a DataHub Subscribe processor and enter: `from_Line1.devicehub.alias.PLC1.Temperature` `from_Line2.devicehub.alias.PLC2.Temperature`&#x20;
3. Enable the debug button on the Analytics processor to see the data in the debug console.

# Data Flow Example

## Original Topics on Spoke Instances

**LE Coll 1** publishes:

- `devicehub.alias.PLC1.Temperature`
- `devicehub.alias.PLC1.Pressure`
- `devicehub.alias.Sensor1.Status`

**LE Coll 2** publishes:

- `devicehub.alias.PLC2.Temperature`
- `devicehub.alias.PLC2.Pressure`
- `devicehub.alias.Sensor2.Status`

## Prefixed Topics on Hub Instance

After streaming through Edge Cascading, **LE DMZ** receives:

From LE Coll 1:

- `from_Line1.devicehub.alias.PLC1.Temperature`
- `from_Line1.devicehub.alias.PLC1.Pressure`
- `from_Line1.devicehub.alias.Sensor1.Status`

From LE Coll 2:

- `from_Line2.devicehub.alias.PLC2.Temperature`
- `from_Line2.devicehub.alias.PLC2.Pressure`
- `from_Line2.devicehub.alias.Sensor2.Status`

The prefixes ensure there are no topic name conflicts when aggregating data from multiple sources.
