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
Natively supports Docker and WASM with pluggable architecture for custom binaries. Can run any architecture, networking, or security constructs right for your application-including GPU-accelerated CUDA programs and hardware-specific workloads.

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 compute jobs next to your data-whether just generated, in S3 buckets, stored in SQLite/Iceberg tables, or 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.

Job Types & Execution

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
Four job types: batch, service, ops (execute on all matching nodes), and daemon (run continuously on all matching nodes). Supports 'embarrassingly parallel' execution where jobs don't need to communicate-offering significant performance speed-ups.

At a Glance

FeatureNomadExpanso
Lightweight Single Binary
Multi-Workload Support
Data Locality Priority
Cross-Organization Orchestration Single org focus
Edge Computing (Disconnected) Requires connection
Compute Over Data
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 bring compute to your data?

Stop moving petabytes and start processing where your data lives with Expanso's Compute Over Data approach.