Skip to main content
Version: 1.0

Deployment Architectures

info

These guides are for deploying wadm in production. For local development and testing, simply run wash up. For more information on wadm, see the wadm docs.

High availability and horizontal scaling by default

wadm is designed to be resilient, flexible, and easy to scale from a single instance to many. No configuration is required to run additional instances.

Each instance establishes and maintains in-memory state of a lattice based off events emitted by hosts in the lattice, which means wadm instances can be restarted or scaled up and down without impacting the management of the lattice.

Instances of wadm do not need to be run on the same system as a wasmCloud host; the only requirement is that instances have access to internal NATS subjects used by lattices.

Single lattice management

The simplest deployment pattern is to run a group of (one or more) wadm instances per lattice. This simplifies the requirements for the NATS credentials, since wadm only needs to subscribe to events and emit commands related to a single lattice. See Configuring NATS Credentials for information on how to configure NATS credentials for wadm.

Multi-lattice management

This pattern is slightly more complex than the single lattice management pattern. In this pattern, wadm manages multiple lattices associated with the same NATS cluster. This is useful for multi-tenant deployments of wasmCloud, managing a dev and staging environment together, etc.

Configuring wadm to manage multiple lattices is straightforward. The only additional requirement to configure wadm for multi-lattice management is ensuring the NATS credentials provided to wadm have permission on topics for all lattices. For more information, see Configuring NATS Credentials