| 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 |