Skip to main content
Integration

A library you embed, not a server you run

Nodus is a .NET package that runs inside your process. Add it, describe the cluster, start the node — and your service can message peers, await typed replies, subscribe to cluster events, and run leader-only singletons, with nothing extra to deploy.

Getting in

Four steps to a running member

Add the package

Reference the Nodus client — it is a NuGet package you embed, targeting modern .NET. No sidecar, no server to install.

Describe the cluster

Give each process a config with its peer set and its own node identity. The same config shape scales from three fixed nodes to a dynamic fleet.

Start the node

One entry point builds the container, joins the cluster, and returns a running handle you dispose on shutdown for a clean leave.

Use the cluster

Message peers, await replies, subscribe to events, and gate singletons on leadership — from inside your own process.

In your code

Join a cluster, follow the leader

One entry point builds the node, joins the cluster, and returns a running handle. Subscribe to leadership and gate singleton work on the node that leads — the rest is your application.

Read the developer guide →
Nodus example
using Clustron.Nodus.Abstractions;
using Clustron.Nodus.Client;

// this process's slice of the cluster, resolved from a launch input
var self = config.Cluster.Nodes.Single(n => n.NodeId == myId);

await using INodusNode node = await NodusNode
.Configure(config)
.WithNodeIdentity(self)
.StartAsync();

// react the moment the cluster agrees on a coordinator
node.Leadership.Changed += (leader, epoch) =>
Console.WriteLine($"leader is now {leader.NodeId} (epoch {epoch})");

// run the singleton only where we lead
if (node.Leadership.IsSelf)
await RunTheSingletonJob();
What you get

The whole coordination surface

Membership, leadership, messaging and events — all reachable from the single embedded handle.

Point-to-point messaging

Address a specific peer and send it a typed payload — work to do, state to share — over the persistent, prioritized transport.

Request / reply

Ask one node a question and await a typed answer, matched by correlation id, with a timeout you control.

Broadcast

Send a typed message to every member at once — a cache invalidation, a config change, a fan-out of work.

Cluster events

A typed publish/subscribe bus, distinct from direct messaging, that propagates lifecycle and custom events to every member.

Leadership hooks

Subscribe to leadership changes and gate singleton work on IsSelf so exactly one instance runs it, with automatic handover on failure.

Health & membership

Read the live roster and per-peer health to drive routing, rebalancing, or a dashboard — all from the embedded API.

Proven in production

The core Zaris clusters on

Nodus is not a demo — it is the clustering core beneath Clustron Zaris, the distributed key-value store. The same membership, leader election and messaging that form a Zaris cluster are the API you get when you embed Nodus directly.

  • Battle-tested by a real distributed store's data plane
  • The same code path, whether you run three nodes or a fleet
  • In-process for development and tests, clustered in production
Deploy anywhere

Runs where your service runs

Because it is a library, Nodus goes wherever your process goes — a container, a Kubernetes pod, a Windows service, a cloud VM. There is no separate coordination cluster to place, secure, or scale alongside it.

Cluster your service today

Add the package, start a node, and watch the members agree on a leader.