Streams
Manage durable event streams with NATS JetStream
Streams provide durable, ordered storage for CloudEvents, powered by NATS JetStream. They ensure reliable event delivery and enable event replay capabilities.
What are Streams?
Streams are append-only logs that store CloudEvents persistently. Unlike traditional message queues where messages are deleted after consumption, streams retain CloudEvents for replay and historical analysis.
Key Features
- Durability - CloudEvents are persisted to disk
- Ordering - CloudEvents maintain their order
- Replay - Consumers can replay CloudEvents from any point
- Retention - Configurable retention policies
- Multiple Consumers - Many consumers can read from the same stream
Stream Types
Event Source Streams
Automatically created when you configure an Event Source:
- Stream name:
eventsource-{name}-stream - Subject:
eventsource.{name} - Stores CloudEvents from the source
Event Channel Streams
Automatically created when you configure an Event Channel:
- Stream name:
eventchannel-{name}-stream - Subject:
eventchannel.{name} - Stores CloudEvents being sent to the channel
Stream Configuration
Configure stream behavior:
Retention Policy
- Limits - Keep last N messages
- Age - Keep messages for N hours/days
- Size - Keep until stream reaches size limit
- Interest - Keep until all consumers acknowledge
Storage
- File - Persistent storage on disk
- Memory - In-memory storage (faster, not persistent)
Replicas
- Configure replication for high availability
- Ensure data durability across nodes
Stream Management
The Streams page allows you to:
- View all configured streams
- Monitor stream statistics
- Configure retention policies
- Manage stream consumers
Stream Statistics
Monitor stream health:
- Message Count - Total messages in stream
- Bytes - Storage used by stream
- First Sequence - Oldest message sequence number
- Last Sequence - Newest message sequence number
- Consumer Count - Number of active consumers
Consumers
Consumers read from streams:
- Push Consumers - Server pushes messages to consumer
- Pull Consumers - Consumer pulls messages from server
- Durable - Consumer state is persisted
- Ephemeral - Consumer state is temporary
Use Cases
Streams are ideal for:
- Event Sourcing - Store all state changes as CloudEvents
- Audit Logging - Maintain immutable audit trails
- Event Replay - Reprocess CloudEvents for testing or recovery
- Multi-Consumer - Multiple services processing same CloudEvents
Integration with Other Features
Streams integrate with:
- Event Sources - Store captured CloudEvents
- Event Channels - Queue CloudEvents for delivery
- Event Subscriptions - Route CloudEvents between streams
- Integration Flows - Trigger flows from stream events
Best Practices
Set Appropriate Retention
- Balance storage costs with replay needs
- Use limits or age-based retention
- Monitor stream growth
Choose Storage Wisely
- Use file storage for durability
- Use memory storage for temporary, high-throughput streams
Monitor Stream Health
- Track message count growth
- Monitor consumer lag
- Set up alerts for issues
What’s Next
- Eventing Overview - Learn about event-driven architecture
- Events - View and manage events
- Event Sources - Capture events to streams
- Event Subscriptions - Route events between streams