---
id: "nats-jetstream"
type: "component"
kind: "stream"
provider: "default"
category: "messaging"
docs: "https://docs.nats.io/nats-concepts/jetstream"
url: "https://localhost:3000/catalogue/components/nats-jetstream"
---

# NATS JetStream

Persistence layer for NATS providing globally ordered, Raft-replicated streams.

| | |
|---|---|
| Provider | [default](https://localhost:3000/catalogue?provider=default) |
| Kind | [Stream](https://localhost:3000/catalogue/kinds/stream) |
| Category | Messaging |
| Official docs | [https://docs.nats.io/nats-concepts/jetstream](https://docs.nats.io/nats-concepts/jetstream) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `acks` | enum | `none`, `leader`, `quorum`, `all` | no | — | **"quorum"** |
| `compaction` | boolean | — | no | false | inherited |
| `delivery` | enum | `at-most-once`, `at-least-once`, `exactly-once` | no | "at-least-once" | **"at-least-once"** |
| `idempotentProducer` (advanced) | boolean | — | no | false | inherited |
| `managed` | boolean | — | no | false | **false** |
| `minInsyncReplicas` | integer | — | no | — | inherited |
| `ordering` | enum | `per-key`, `global` | no | "per-key" | **"global"** |
| `partitions` | integer | — | no | — | inherited |
| `replicationFactor` | integer | — | no | — | **1** |
| `retentionHours` | integer | — | no | — | inherited |
| `retentionPolicy` | enum | `limits`, `interest`, `work-queue` | no | "limits" | inherited |
| `schemaEnforced` | boolean | — | no | false | inherited |
| `storage` | enum | `ephemeral`, `persistent` | no | "persistent" | **"persistent"** |
| `transactions` (advanced) | boolean | — | no | false | inherited |

Bold values are the ones this component pins.

## Rules that apply · 0

No rule selects this kind or its category.

## Other products of the same kind · 18

- [DataHub](https://localhost:3000/catalogue/components/alibaba-datahub.md) `alibaba-datahub` — alibabacloud
- [ApsaraMQ for Kafka](https://localhost:3000/catalogue/components/alibaba-kafka.md) `alibaba-kafka` — alibabacloud
- [Amazon Kinesis Video Streams](https://localhost:3000/catalogue/components/aws-kinesis-video-streams.md) `aws-kinesis-video-streams` — aws
- [Amazon Managed Streaming for Apache Kafka](https://localhost:3000/catalogue/components/aws-msk.md) `aws-msk` — aws
- [Amazon Kinesis Data Streams](https://localhost:3000/catalogue/components/kinesis.md) `kinesis` — aws
- [Azure Event Hubs](https://localhost:3000/catalogue/components/azure-event-hubs.md) `azure-event-hubs` — azure
- [AutoMQ](https://localhost:3000/catalogue/components/automq.md) `automq` — default
- [Confluent Cloud](https://localhost:3000/catalogue/components/confluent-cloud.md) `confluent-cloud` — default
- [Apache Kafka](https://localhost:3000/catalogue/components/kafka.md) `kafka` — default
- [Apache Pulsar](https://localhost:3000/catalogue/components/pulsar.md) `pulsar` — default
- [Redpanda](https://localhost:3000/catalogue/components/redpanda.md) `redpanda` — default
- [Apache RocketMQ](https://localhost:3000/catalogue/components/rocketmq.md) `rocketmq` — default
- [Generic stream](https://localhost:3000/catalogue/components/stream.md) `stream` — default
- [WarpStream](https://localhost:3000/catalogue/components/warpstream.md) `warpstream` — default
- [Managed Service for Apache Kafka](https://localhost:3000/catalogue/components/google-managed-kafka.md) `google-managed-kafka` — gcp
- [IBM Event Streams](https://localhost:3000/catalogue/components/ibm-event-streams.md) `ibm-event-streams` — ibm
- [OCI Streaming](https://localhost:3000/catalogue/components/oci-streaming.md) `oci-streaming` — oci
- [OCI Streaming with Apache Kafka](https://localhost:3000/catalogue/components/oci-streaming-kafka.md) `oci-streaming-kafka` — oci

## Use it in a design

```yaml
nodes:
  - { id: "nats-jetstream", component: "nats-jetstream" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# NATS JetStream: persistence layer on NATS. A stream is a single globally ordered sequence (no partitions),
# file storage and 1 replica by default, Raft-replicated when replicas > 1; retention unlimited unless limits set.
schemaVersion: "1"
type: "component"
id: "nats-jetstream"
kind: "stream"
provider: "default"
docs: "https://docs.nats.io/nats-concepts/jetstream"
defaults:
  delivery: "at-least-once"
  ordering: "global"
  replicationFactor: 1
  acks: "quorum"
  storage: "persistent"
  managed: false
properties:
  retentionPolicy:
    type: "enum"
    values: ["limits", "interest", "work-queue"]
    default: "limits"
```

Human page: https://localhost:3000/catalogue/components/nats-jetstream
