Message Consumption Model |
Pub/Sub with pull-based and push-based architecture |
Pub/Sub with pull-based architecture (consumers pull messages)
|
Delivery Guarantee |
At most once (JetStream offers at least and exactly once guarantees)
|
Exactly once |
Scalability |
Horizontal scaling by adding/removing servers |
Horizontal scaling by adding/removing brokers |
Message Ordering |
Source-ordered per publisher (no cross-publisher guarantees) |
Guarantees within a partition |
Use Cases |
Services, IoT, edge telemetry, command and control, legacy system
replacement
|
High-throughput data processing, log aggregation, stream processing,
event sourcing
|
Persistence |
JetStream supports memory and file persistence |
Built-in via log storage |
Languages Supported |
Official clients in Go, Rust, JavaScript, Python, Java, C#, and more
|
Clients available in Java, Scala, Go, Python, C/C++, and more |
Security |
TLS, NKEYS, username/password, token authentication |
SSL, SASL, external authorization services |
Monitoring |
Integration with Prometheus, Grafana, and nats-top |
Built-in support for JMX, Prometheus, Grafana |
Built-in Patterns |
Pub/Sub, request-reply, load-balanced queue group patterns |
High-throughput stream processing and event sourcing |