Skip to main content
Version: 1.x

NATS Streams and Buckets

The first time wasmCloud and wadm start they will attempt to get or create the following KV buckets and streams. It's recommended to pre-create the buckets and streams in production environments to avoid giving these processes permissions to create or overwrite JetStream resources.

wasmCloud KV Buckets

wasmCloud requires the following KV buckets per lattice:

CONFIGDATA_<lattice>

Example: CONFIGDATA_default

Suggested configuration:

  • N replicas where N is number of NATS server cluster nodes
  • File backed and backed up

LATTICEDATA_<lattice>

Example: LATTICEDATA_default

Suggested configuration:

  • N replicas where N is number of NATS server cluster nodes
  • File backed and backed up

wadm KV Buckets

wadm requires the following KV buckets:

wadm_manifests

Suggested configuration:

  • N replicas where N is number of NATS server cluster nodes
  • File backed and backed up

wadm_state

Suggested configuration:

  • N replicas where N is number of NATS server cluster nodes
  • Optional: File backed and backed up. wadm_state can be fully recovered in a maximum of 60 seconds upon reconnecting to a cluster.

wadm Streams

wadm requires the following streams:

wadm_commands

  • Subjects: wadm.cmd.*
  • Retention: WorkQueue

wadm_events

  • Subjects: wadm.evt.*.>
  • Retention: Limits

wadm_status

  • Subjects: wadm.status.*.*
  • Retention: Limits
  • Maximum Per Subject: 10

wasmbus_events

  • Subjects: wasmbus.evt.*.>
  • Retention: Limits

wadm_notify

  • Subjects: wadm.notify.*
  • Retention: Interest

wadm_event_consumer

  • Retention: WorkQueue
  • Transform stream
Source Information:

                   Stream Name: wasmbus_events
  Subject Filter and Transform: wasmbus.evt.*.> to wadm_event_consumer.evt.{{wildcard(1)}}.>
                           Lag: 0
                     Last Seen: 135ms

                   Stream Name: wadm_events
  Subject Filter and Transform: wadm.evt.*.> to wadm_event_consumer.evt.{{wildcard(1)}}.>
                           Lag: 0
                     Last Seen: 336ms

Production Configuration

For production deployments, create these buckets with appropriate replication:

bash
# wasmCloud KV Buckets (replace 'default' with your lattice name)
nats --domain wasmcloud kv add --replicas 3 LATTICEDATA_default
nats --domain wasmcloud kv add --replicas 3 CONFIGDATA_default

# wadm KV Buckets
nats --domain wasmcloud kv add --replicas 3 wadm_manifests
nats --domain wasmcloud kv add --replicas 3 wadm_state

If the buckets already exist, you can increase the number of replicas:

bash
nats --domain wasmcloud stream edit --replicas 3 KV_LATTICEDATA_default
nats --domain wasmcloud stream edit --replicas 3 KV_CONFIGDATA_default
nats --domain wasmcloud stream edit --replicas 3 KV_wadm_manifests
nats --domain wasmcloud stream edit --replicas 3 KV_wadm_state