Clustron Zaris is a partitioned, replicated, in-memory key-value store for .NET — run it as a dedicated cluster, or in-process. Transactions, watches, locks, and a real console. No ZooKeeper. No etcd. No coordinator to babysit.
Embeds in your app · No external coordinator · In-process or clustered · Docker & Kubernetes-ready
Each block solves one hard part of running software across more than one process or machine. Zaris is what you get when all of them are composed into one distributed store.
Partitioned, replicated in-memory storage with transactions, watches, leases, locks, counters, and TTL — in-process for dev, clustered at scale.
Explore Zaris →Peer-to-peer membership, leader election, and typed messaging — no ZooKeeper, etcd, or Consul to run.
Explore Nodus →The flagship product — a high-performance, in-memory key-value store that clusters on Nodus, with built-in security and metrics.
Run embedded with zero servers for development and tests, then move to a real multi-node cluster without changing your code.
Data is partitioned across nodes and replicated for availability, with automatic placement and rebalancing.
Atomic multi-key transactions and compare-and-swap for correct concurrent updates.
React to changes in real time, coordinate work with leases and distributed locks, and elect leaders.
Mutual TLS with four CA/trust models, token authentication, and RBAC — turn it on per store.
A web console and full PowerShell tooling to create, scale, secure, and observe every store.
Every Clustron Zaris cluster ships with a built-in web console — real-time throughput, partition ownership, node health, live data, and security, with no extra agents to deploy.




dotnet add to a running storeInstall the SDK and run an embedded store in a few lines — no servers to stand up. When you're ready, point the same code at a real cluster.
dotnet add package Clustron.Zaris.SDK
// In-process is just a connection string: zaris://inproc/demo
var services = new ServiceCollection()
.AddClustronZaris("demo", "zaris://inproc/demo")
.BuildServiceProvider();
var client = await services
.GetRequiredService<IZarisClientProvider>()
.GetAsync("demo");
await client.PutAsync("hello", "world");
var value = await client.GetAsync<string>("hello");
No external coordinator. No heavyweight infrastructure. Just NuGet packages and your code.