The documentation you are viewing is for Dapr v1.8 which is an older version of Dapr. For up-to-date documentation, see the latest version.
JetStream
Component format
To setup JetStream pubsub create a component of type pubsub.jetstream. See
this guide on how to
create and apply a pubsub configuration.
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: jetstream-pubsub
spec:
  type: pubsub.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: name
    value: "connection name"
  - name: durableName
    value: "consumer durable name"
  - name: queueGroupName
    value: "queue group name"
  - name: startSequence
    value: 1
  - name: startTime # in Unix format
    value: 1630349391
  - name: deliverAll
    value: false
  - name: flowControl
    value: false
Spec metadata fields
| 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” | 
| name | N | NATS connection name | "my-conn-name" | 
| durableName | N | Durable name | "my-durable" | 
| queueGroupName | N | Queue group name | "my-queue" | 
| startSequence | N | Start Sequence | 1 | 
| startTime | N | Start Time in Unix format | 1630349391 | 
| deliverAll | N | Set deliver all as Replay Policy | true | 
| flowControl | N | Flow Control | true | 
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 --set nats.jetstream.enabled=true 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
For more information on helm chart settings, see the Helm chart documentation.
Create JetStream
It is essential to create a NATS JetStream for a specific subject. For example, for a NATS server running locally use:
nats -s localhost:4222 stream add myStream --subjects mySubject
Related links
- Basic schema for a Dapr component
- Read this guide for instructions on configuring pub/sub components
- Pub/Sub building block
- JetStream Documentation
- NATS CLI
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.