Skip to main content

Networks & Nodes

Networks and nodes are how you organize and run pipelines across your infrastructure.


Networks

A network is a logical grouping of nodes that work together.

Purpose

Networks help you:

  • Organize nodes by environment, region, or project
  • Isolate workloads between teams or applications
  • Manage permissions with role-based access
  • Deploy pipelines to groups of nodes

Common Patterns

By Environment:

├── dev-network        → 5 development nodes
├── staging-network → 3 staging nodes
└── production-network → 20 production nodes

By Geography:

├── us-east-network    → Nodes in US East region
├── eu-west-network → Nodes in EU West region
└── ap-south-network → Nodes in Asia Pacific

By Team/Project:

├── team-data-network  → Data engineering nodes
├── team-ml-network → ML inference nodes
└── iot-project-network → IoT sensor nodes

Network Isolation

What's isolated:

  • Nodes can only see other nodes in same network
  • Pipelines deploy only to nodes in same network
  • Metrics and logs scoped to network

What's shared:

  • User accounts span networks
  • Billing is account-level

Creating Networks

Via Cloud UI:

  1. Go to Networks dashboard
  2. Click "Create Network"
  3. Enter name and description
  4. Click "Create"

Via CLI:

expanso network create my-network

Nodes

An edge node is the lightweight runtime that executes data pipelines on your infrastructure.

What is a Node?

A node is:

  • A lightweight daemon (~50MB binary)
  • Runs on your infrastructure (bare metal, VMs, containers, edge devices)
  • Executes one or more pipelines
  • Reports metrics to Expanso Cloud

Resource Requirements

Minimal footprint:

  • CPU: 0.5 cores
  • RAM: 64 MB base
  • Disk: 150 MB

Actual usage depends on number of pipelines, data volume, buffering, and transformation complexity.

Node Lifecycle

1. Bootstrap — Register with Expanso Cloud using a bootstrap token:

expanso-edge bootstrap --token YOUR_TOKEN

The node receives credentials and network assignment.

2. Connect — Establish secure TLS connection to control plane. The node registers with its assigned network, receives initial configuration, and begins health reporting.

3. Execute — Run assigned pipelines: download configs, process data, report metrics and status.

4. Update — Receive configuration updates as pipelines are deployed, updated, or removed.

Deployment Options

Bare metal / VMs:

curl -sL https://get.expanso.io/edge/install.sh | bash
expanso-edge bootstrap --token TOKEN

Docker:

docker run -d \
-e EXPANSO_EDGE_BOOTSTRAP_TOKEN=TOKEN \
ghcr.io/expanso-io/expanso-edge:nightly

Kubernetes:

apiVersion: apps/v1
kind: Deployment
metadata:
name: expanso-edge
spec:
template:
spec:
containers:
- name: expanso-edge
image: ghcr.io/expanso-io/expanso-edge:latest
env:
- name: EXPANSO_EDGE_BOOTSTRAP_TOKEN
value: YOUR_TOKEN

Edge devices: Raspberry Pi, IoT gateways, industrial PLCs.

Health & Monitoring

Nodes report health every 10 seconds:

  • Connection status: Connected/disconnected
  • Pipeline status: Running/stopped/failed
  • Resource usage: CPU, memory, disk
  • Error conditions: Recent errors and warnings

Labels and Selectors

Use labels on nodes to target specific groups within a network:

# Node labels (set during bootstrap or via configuration)
labels:
env: production
region: us-east-1
datacenter: dc-1
role: log-processor

Deploy pipelines using selectors:

# Deploy only to production log processors in us-east-1
selector:
env: production
region: us-east-1
role: log-processor

Labels enable gradual rollouts, environment-specific deployments, role-based targeting, and monitoring filters.


What's Next?

👉 Pipelines - Learn about data flow definitions

👉 Deploy a Node - Get hands-on