Una biblioteca que incorporas, no un servidor que ejecutas
Nodus es un paquete .NET que se ejecuta dentro de tu proceso. Añádelo, describe el clúster, inicia el nodo — y tu servicio podrá enviar mensajes a los pares, esperar respuestas tipadas, suscribirse a eventos del clúster y ejecutar singletons solo en el líder, sin nada extra que desplegar.
Cuatro pasos hasta un miembro en ejecución
Añade el paquete
Referencia el cliente de Nodus — es un paquete NuGet que incorporas, dirigido a .NET moderno. Sin sidecar, sin servidor que instalar.
Describe el clúster
Da a cada proceso una configuración con su conjunto de pares y su propia identidad de nodo. La misma forma de configuración escala desde tres nodos fijos hasta una flota dinámica.
Inicia el nodo
Un único punto de entrada construye el contenedor, se une al clúster y devuelve un identificador en ejecución que liberas al apagar para una salida limpia.
Usa el clúster
Envía mensajes a los pares, espera respuestas, suscríbete a eventos y condiciona los singletons al liderazgo — desde dentro de tu propio proceso.
Únete a un clúster, sigue al líder
Un único punto de entrada construye el nodo, se une al clúster y devuelve un identificador en ejecución. Suscríbete al liderazgo y condiciona el trabajo singleton al nodo que lidera — el resto es tu aplicación.
Leer la guía del desarrollador →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();
Toda la superficie de coordinación
Membresía, liderazgo, mensajería y eventos — todo accesible desde el único identificador incorporado.
Mensajería punto a punto
Dirígete a un par específico y envíale una carga tipada — trabajo por hacer, estado por compartir — sobre el transporte persistente y priorizado.
Solicitud / respuesta
Haz una pregunta a un nodo y espera una respuesta tipada, emparejada por correlation id, con un tiempo de espera que tú controlas.
Difusión
Envía un mensaje tipado a todos los miembros a la vez — una invalidación de caché, un cambio de configuración, una distribución de trabajo.
Eventos del clúster
Un bus de publicación/suscripción tipado, distinto de la mensajería directa, que propaga eventos de ciclo de vida y personalizados a todos los miembros.
Ganchos de liderazgo
Suscríbete a los cambios de liderazgo y condiciona el trabajo singleton a IsSelf para que exactamente una instancia lo ejecute, con traspaso automático ante un fallo.
Salud y membresía
Lee la lista de miembros en vivo y la salud por par para dirigir el enrutamiento, el rebalanceo o un panel — todo desde la API incorporada.
El núcleo sobre el que se agrupa Zaris
Nodus no es una demostración — es el núcleo de clustering bajo Clustron Zaris, el almacén clave-valor distribuido. La misma membresía, elección de líder y mensajería que forman un clúster de Zaris son la API que obtienes cuando incorporas Nodus directamente.
- Probado en condiciones reales por el plano de datos de un almacén distribuido real
- La misma ruta de código, ya sea que ejecutes tres nodos o una flota
- En proceso para desarrollo y pruebas, en clúster en producción
Se ejecuta donde se ejecuta tu servicio
Al ser una biblioteca, Nodus va a dondequiera que vaya tu proceso — un contenedor, un pod de Kubernetes, un servicio de Windows, una VM en la nube. No hay un clúster de coordinación aparte que ubicar, proteger o escalar junto a él.
Agrupa tu servicio hoy
Añade el paquete, inicia un nodo y observa cómo los miembros acuerdan un líder.