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:
- Go to Networks dashboard
- Click "Create Network"
- Enter name and description
- 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