Incrústalo en tu aplicación .NET en segundos, o ejecuta un servidor o clúster con Docker, Compose o Kubernetes — el mismo cliente y la misma cadena de conexión llegan a todos ellos.
Deja que tu agente de programación con IA instale y verifique Zaris por ti. Detecta tu entorno — en proceso, Docker, Kubernetes o Windows — y ejecuta la ruta correcta de principio a fin.
1 · Añade la skill de Zaris a tu agente
npx skills add clustron/zaris
2 · Luego solo pídelo
Install Clustron Zaris and set it up so I can connect to a store.
Añade el SDK de .NET y ejecuta un almacén completo dentro de tu propio proceso — ideal para desarrollo y pruebas. El mismo cliente también se conecta a cualquier clúster de Zaris, sin cambios de código.
# Add the Clustron Zaris SDK to your project
dotnet add package Clustron.Zaris.SDK
using Clustron.Zaris.Client.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
// An embedded, in-process store — no servers, no install.
// In-process is just a connection string: zaris://inproc/demo
var sp = new ServiceCollection()
.AddClustronZaris("demo", "zaris://inproc/demo")
.BuildServiceProvider();
Autoalójalo donde quieras — tus datos nunca salen de tu entorno. Descárgalo desde Docker Hub o instala el paquete para Windows. Elige tu plataforma:
# Pull the compose file and start a 4-node cluster + web console
curl -fL https://clustron.io/quick-start.yml | docker compose -f - up -d
El valor predeterminado es 4 nodos con RF 2 (2 particiones, cada una replicada — sobrevive a la pérdida de un nodo). ¿Necesitas otro tamaño? Guarda el archivo (curl -fL https://clustron.io/quick-start.yml -o quick-start.yml) y edita la lista de nodos — mantén el número de nodos como un múltiplo del factor de replicación (par para RF 2).
Abre http://localhost:7810 — el almacén demo aparece con sus 3 nodos poniéndose en buen estado. O comprueba el plano de datos desde el shell:
# Prove the data plane: put a key and read it back (runs inside the manager container)
docker exec $(docker ps -qf name=manager) pwsh -Command "Connect-ZrStore -ConnectionString 'zaris://zaris-0:7861/demo'; Set-ZrItem hello world; Get-ZrItem hello"
# Point your app at the store — the path segment is the store name
zaris://localhost:7861/demo
# One command: 4 nodes at RF 2 (2 partitions x 2 copies), store auto-attached.
helm install zaris oci://registry-1.docker.io/clustron/zaris -n zaris --create-namespace
El almacén queda adjuntado automáticamente en el despliegue — sin registro manual. Cambia el tamaño con --set node.replicas / --set node.replicationFactor (mantén replicas como un múltiplo del factor de replicación: RF 2 → 4, 6, …).
# Open the console (private port-forward — works on any cluster):
kubectl -n zaris port-forward svc/zaris-manager-console 8080:7810
# -> http://localhost:8080
# Connect from inside the cluster
zaris://zaris-client.zaris.svc.cluster.local:7861/zaris-k8s
Proteger el workspace, exponer la consola mediante HTTPS, grupos de nodos de caché dedicados y los pasos específicos de nube para AKS / EKS / GKE / OpenShift están todos en las guías de abajo.
# In the extracted folder, in a terminal running as Administrator
# (or right-click install.cmd -> Run as administrator)
.\install.cmd
Registra el Servicio de Administración y la Consola Web como servicios de Windows, además de los módulos de PowerShell.
# 1) Point a workspace at the local Management Service (:7801) and activate it
New-ZrWorkspace -Name local -Managers "localhost:7801" -Activate
# 2) Create the store — supervisor mode forks the node processes.
# BaseClientPort is the port your app connects to.
New-ZrStore -Name orders -ReplicationFactor 2 `
-BaseClusterPort 7811 -BaseClientPort 7861
O hazlo todo en la consola web en http://localhost:7810 (sin necesidad de ningún cmdlet de workspace — añade el administrador en la interfaz).
# Connect to the store you created (BaseClientPort 7861 above)
zaris://localhost:7861/orders
Apunta tu aplicación al almacén con una sola cadena de conexión. Qué hosts uses depende de dónde se ejecute tu aplicación — dentro de la misma red o clúster, o fuera de ella.
Cuando tu aplicación se ejecuta junto al almacén — otro servicio de Compose, o un pod en el mismo clúster — accede a él directamente en la red interna.
# Docker Compose — app on the same network
zaris://zaris-0:7861,zaris-1:7861,zaris-2:7861/demo
# Kubernetes — in-cluster
zaris://zaris-client.zaris.svc.cluster.local:7861/zaris-k8s
# Local quick-start — from your host (Docker quick-start)
zaris://localhost:7861/demo
De forma predeterminada, el clúster anuncia direcciones internas de la red. Para alcanzarlo desde fuera, habilita el acceso externo — cada nodo también anuncia una dirección accesible externamente en un segundo listener, protegida con TLS.
# Docker Compose or Kubernetes — external access (TLS + cluster CA)
zariss://node-1.example.com:7863,node-2.example.com:7863/zaris-k8s?ca=/path/ca.pem
Requiere el acceso externo activado (direcciones anunciadas). Usa zariss:// con la CA del clúster — y ?token=env:VAR si la autenticación por token está activada.
Coloca la cadena de conexión en la DI o en appsettings.json. El segmento de ruta es el nombre del almacén — equivale al id del clúster; la clave de DI es solo una etiqueta local. Los hosts separados por comas son una lista semilla con failover automático.
using Clustron.Zaris.Client.DependencyInjection;
// The store name in the path IS the cluster id — set it in one place.
services.AddClustronZaris(
"demo", "zaris://localhost:7861/demo");
// …or from appsettings.json:
// "ConnectionStrings": { "demo": "zaris://localhost:7861/demo" }
services.AddClustronZarisFromConnectionStrings(configuration);
// Resolve and use it:
var provider = sp.GetRequiredService<IZarisClientProvider>();
var client = await provider.GetAsync("demo");
await client.PutAsync("k", "v");
Nodus — pertenencia peer-to-peer, elección de líder y mensajería tipada — es un único paquete NuGet que incrustas en tu servicio .NET. Sin paquete que alojar, sin servidor que ejecutar.
dotnet add package Clustron.Nodus.Client
Explora todas las versiones o lee la política de versionado y compatibilidad.