Deployment Architectures
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