JetStream KV
Detailed information on the JetStream KV state store component
Component format
To setup a JetStream KV state store create a component of type state.jetstream. See this guide on how to create and apply a state store configuration.
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: <NAME>
spec:
  type: state.jetstream
  version: v1
  metadata:
  - name: natsURL
    value: "nats://localhost:4222"
  - name: jwt
    value: "eyJhbGciOiJ...6yJV_adQssw5c" # Optional. Used for decentralized JWT authentication
  - name: seedKey
    value: "SUACS34K232O...5Z3POU7BNIL4Y" # Optional. Used for decentralized JWT authentication
  - name: bucket
    value: "<bucketName>"
Warning
The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described here.Spec metadatafield
| Field | Required | Details | Example | 
|---|---|---|---|
| natsURL | Y | NATS server address URL | “ nats://localhost:4222” | 
| jwt | N | NATS decentralized authentication JWT | “ eyJhbGciOiJ...6yJV_adQssw5c” | 
| seedKey | N | NATS decentralized authentication seed key | “ SUACS34K232O...5Z3POU7BNIL4Y” | 
| bucket | Y | JetStream KV bucket name | "<bucketName>" | 
Create a NATS server
You can run a NATS Server with JetStream enabled locally using Docker:
docker run -d -p 4222:4222 nats:latest -js
You can then interact with the server using the client port: localhost:4222.
Install NATS JetStream on Kubernetes by using the helm:
helm repo add nats https://nats-io.github.io/k8s/helm/charts/
helm install my-nats nats/nats
This installs a single NATS server into the default namespace. To interact
with NATS, find the service with: kubectl get svc my-nats.
Creating a JetStream KV bucket
It is necessary to create a key value bucket, this can easily done via NATS CLI.
nats kv add <bucketName>
Related links
- Basic schema for a Dapr component
- Read this guide for instructions on configuring state store components
- State management building block
- JetStream Documentation
- Key Value Store Documentation
- NATS CLI