// the find
nats-io/nats-streaming-server
NATS Streaming System Server
NATS Streaming Server (Stan) is a persistent messaging layer built on top of NATS, adding durable subscriptions, message replay, and at-least-once delivery. It was a popular choice for teams who needed Kafka-like guarantees without the JVM overhead, but it has been officially deprecated and superseded by NATS JetStream, which is now built directly into the NATS server.
The Raft-based clustering implementation is solid — fault tolerance and leader election are well-tested with dedicated test files for clustering, snapshots, and transport. Storage backends are genuinely pluggable: in-memory, file-based, and SQL (MySQL/Postgres) are all real options, not afterthoughts. The test coverage is extensive — nearly every server/*.go file has a matching *_test.go, including edge cases like store failures and message redelivery. File store crypto support (cryptostore.go) is a nice inclusion for regulated environments.
This repo is dead. Security fixes stopped June 2023 per the README's own warning, and the last push was April 2024 — maintenance mode at best. The protocol is Stan-specific (see spb/protocol.proto), meaning your clients are locked into a deprecated SDK with no migration path except rewriting against JetStream's different API. JetStream has overtaken it on every dimension: better performance, active development, and it doesn't require a separate server process. Anyone adopting this today is choosing technical debt from day one.