Comparison
Expanso and Nomad: Orchestrating for Different Scales and Domains
Nomad offers simple, flexible orchestration for diverse workloads within a zone, while Expanso specializes in Compute Over Data across globally distributed environments.
Key Differences
Core Philosophy
Nomad
Lightweight orchestrator focused on simplicity and flexibility. Runs as a single binary for both server and client nodes. Designed for managing diverse workloads (containers, VMs, binaries) within a defined zone or cluster.
Expanso
Takes the learnings from Kubernetes and Nomad and extends them to the global network layout many organizations face. Built around 'Compute Over Data' - if you've asked 'Why are we moving petabytes just to run a computation?', Expanso is your answer.
Execution Environments
Nomad
Natively orchestrates containers (Docker, Podman), VMs, static binaries, Java archives, and more. Excellent flexibility for environments with a mix of legacy and modern workloads managed under a single system.
Expanso
YAML pipelines assembled from built-in components: 50+ inputs, 80+ processors and 55+ outputs. Nomad's breadth of runtimes is a real strength; Expanso's is depth on one job: processing data at the source.
Data Locality
Nomad
While Nomad supports scheduling based on resource availability and constraints, it doesn't explicitly prioritize data locality. Follows centralized model where data is typically moved to the compute cluster.
Expanso
Data locality is the core design principle. Runs pipelines next to your data, whether it's just been generated, is sitting in S3 or a SQL database, or is streaming from edge devices. Eliminates unnecessary data transfers.
Edge & Distributed Computing
Nomad
Clients designed to be resilient to temporary network partitions using the disconnect block. Natively supports edge computing while maintaining a centralized approach requiring network connection to servers.
Expanso
Designed from the ground up for distributed and potentially disconnected environments. Jobs execute without persistent network connections to central controller. Can queue jobs during disconnections and resume when resources reconnect.
How Work Is Targeted
Nomad
Supports service (long-running), batch (run to completion), and system (node-level) job types. Batch jobs are queued and placed onto nodes as capacity becomes available.
Expanso
Jobs are defined in YAML and targeted at nodes by label (site, region, hardware role), so one pipeline definition runs the same way on every node that matches, and a change rolls out to all of them at once.
At a Glance
| Feature | Nomad | Expanso |
|---|---|---|
| Lightweight Single Binary | ||
| Multi-Workload Support | ||
| Data Locality Priority | ||
| Multi-Site by Default | Single zone focus | One control plane |
| Edge Computing (Disconnected) | Requires connection | |
| Processes Data Before It Leaves the Node | ||
| Mixed Architecture Support | ||
| Resource Reuse | Dedicated servers | Uses existing compute |
Collaboration, not Competition
Nomad and Expanso can work beautifully together. Use Nomad to manage your core infrastructure and diverse workloads within your data center or cloud environment - its simplicity and flexibility make it excellent for this. Then use Expanso to distribute data-intensive compute jobs across your global network, edge devices, and wherever your data lives.
Nomad is your choice when you need simpler, high-scale orchestration inside a single zone. Expanso is your choice when processing distributed datasets is your primary goal and moving data is impractical, costly, or prohibited.
Ready to get started?
Ready to process data where it's created?
Stop shipping petabytes to find the megabytes that matter.