The Clustron family
Clustron is two products, not one. This article maps the family: what each product is, which problem it owns, how they compose, and how to pick the one you need.
At a glance
Each product versions independently, and each solves a distinct problem. Zaris is the flagship that composes Nodus and layers security and metrics on top.
| Product | One-line role | Package family | Version | Standalone? |
|---|---|---|---|---|
| Zaris | Distributed key-value store | Clustron.Zaris.* | 1.1.0 | Flagship — composes Nodus |
| Nodus | Clustering & messaging core | Clustron.Nodus.* | 1.1.0 | Yes |
Zaris pins the exact version of Nodus it was built and tested against, so you consume one coherent set rather than reconciling moving parts yourself.
What each product owns
The two products divide the distributed-systems problem space cleanly. Each section states the question that product answers.
Nodus — "who is in the cluster, and who is in charge?"
Nodus is a lightweight clustering and messaging core. A process that references it can:
- Join a peer-to-peer cluster from a static or dynamically supplied peer set, with join and leave surfaced as events.
- Elect a leader with pluggable bully-style strategies (highest-id, oldest-node), an epoch counter, and an application-supplied tiebreaker.
- Send typed messages point-to-point or cluster-wide, including request/reply, over pipelined TCP with MessagePack on the wire.
- Publish and subscribe to cluster-wide events on a typed bus that is distinct from direct messaging.
- Detect failures through heartbeat monitoring, per-peer reachability, and a suspicion window before eviction.
- Ride a gossip digest on the heartbeat traffic without running a second protocol.
It replaces the role that ZooKeeper, etcd, or Consul would play — but as an in-process library, with nothing external to run.
Zaris — "where does shared state live?"
Zaris is the distributed key-value store that composes clustering into a product you run, with security and metrics built in:
- Data plane: partitioned, replicated, in-memory key-value storage with transactions, watches, leases, distributed locks, atomic counters, and TTL.
- Control plane: a management service and web console to create stores, place and scale nodes, and observe the cluster.
- Clustering comes from Nodus. Security is built in — mutual TLS, offline-verified bearer tokens, and role-based access control (RBAC) that is deny-by-default. Observability is built in — rolling per-second metrics recorded cheaply on the hot path and exported over OTLP.
- Two ways to run: in-process (embedded, zero servers — ideal for development and tests) or remote (a real multi-node cluster).
The composition, concretely
When you run a secured Zaris cluster, the diagram shows what happens on a single request.
- Nodus decided which node owns the key and kept the cluster's membership and leadership current underneath all of it.
- The security layer decided whether the caller was allowed, without a network hop.
- The metrics engine recorded that it happened, cheaply, on the hot path.
- Zaris tied it together and returned the result.
Nodus is independently useful on its own — Zaris is simply the place clustering, security, and metrics are already wired together and hardened.
How to choose
Pick by the problem you actually have.
| If you need to… | Use | Don't reach for |
|---|---|---|
| Store shared data across instances, or a distributed cache | Zaris | Nodus alone (it isn't a store) |
| Elect a leader / detect node failures / message peers | Nodus | Zaris (unless you also need storage) |
| A distributed store that already has security + metrics wired in | Zaris | Assembling the pieces by hand |
A useful rule of thumb: if your need mentions "data" or "cache," start at Zaris; otherwise start at Nodus. You can always add the other later — that's the point of the family.
Licensing and compatibility
The family shares one set of platform targets and versioning rules.
- Targets: the core libraries of every product target
netstandard2.0, so they run on .NET Framework 4.8 and .NET 8+. Adapters, hosts, and exporters targetnet8.0. - Wire and serialization: Nodus uses pipelined TCP with MessagePack; Zaris uses its own binary data-plane protocol with wire-compatibility guarantees across versions.
- Independent versioning: each product ships on its own cadence. When you consume Zaris, its package pins the tested version of Nodus, so you consume one coherent set rather than moving parts.