Skip to content

Releases: Clustron/zaris

Zaris 1.1.0

Choose a tag to compare

@zeroheartbeat zeroheartbeat released this 16 Aug 12:20

Clustron Zaris 1.1.0

The first release since 0.9.0 — a major performance pass on the read path, near‑linear multi‑node scaling, several reliability fixes (including two Kubernetes attach‑mode console bugs), and a one‑time binary‑breaking client API change that makes the hot path allocation‑free.

Upgrading from 0.9.0. Wire protocol is unchanged (mixed‑version clusters are fine), but the client hot‑path now returns ValueTaskrecompile your app against 1.1.0 (see Breaking changes).

Highlights

  • Redesigned read path — shard dispatch, lock‑free reads, an env‑gated inline‑IOCP fast path, and ValueTask + pooled GET responses. Removes the previous single‑node throughput plateau.
  • 📈 Near‑linear scale‑out — measured on Azure AKS (512‑byte GET, RF=1): ~630K → ~1.0M → ~1.3M ops/sec across 1 → 2 → 3 nodes.
  • 🛠️ Attach‑mode console fixes — a serving Kubernetes store no longer shows as “Stopped / 0 nodes”, and the Nodes page lists every member instead of one “Lost” node.
  • 📊 Live throughput chart — the web‑console chart now renders a real time‑series trend instead of a flat line.

Performance

  • Read‑path redesign: sharded dispatch, lock‑free reads, and an optional inline‑IOCP fast path (env‑gated).
  • ValueTask GET chain with a pooled GET response payload — allocation‑free on synchronous completion.
  • Server dispatch worker pool is now tunable and defaults higher: ZARIS_SERVER_MIN_WORKERS / ZARIS_SERVER_MAX_WORKERS.
  • Fixed a partition‑balancer stall that could cap throughput under load.

Reliability & correctness

  • Attach‑mode membership (Kubernetes): in single‑seed adoption the manager identifies a node by its host, but the node’s diagnostics guard only accepted its node‑id — so every diagnostic probe was rejected, the manager reported DegradedBootstrap, and the console showed the store as Stopped / 0 nodes with nodes marked Lost. The node now accepts a direct diagnostics request addressed by node‑id or its own host. Validated end‑to‑end on Kubernetes (attach mode, RF=1) under live load.
  • Nodes page enumeration: the console now lists every membership member (deduplicated by id and host), so the Nodes page count matches the dashboard.
  • Throughput chart: the manager retained only ~60 s of metric snapshots and the console kept only the latest per node, collapsing the chart to a single flat point. The console now reconstructs a continuous per‑second timeline from all retained snapshots, and retention is raised to 10 minutes (configurable via ZARIS_METRICS_RETENTION_SECONDS, 60 s–24 h).
  • Migration: re‑stamp stale‑version pending migrations to break a withheld‑cutover livelock.
  • Security: the deterministic ownership backbone is now on by default with fail‑closed node security; closed a data‑plane fail‑open false‑assurance; fixed New-ZrToken silently returning empty.

Observability

  • Shorter metric keys (dropped the zaris. prefix).
  • OpenTelemetry metrics bridge (exports the internal metric catalog via the OTel Meter) and OTLP/console log export — both config‑gated.

Breaking changes

  • Client hot path now returns ValueTask instead of TaskGet, Put, Delete, Expire, Persist, TTL, and the fluent chain. This is a one‑time, deliberate binary‑breaking change for allocation‑free synchronous completion. await‑style usage is source‑compatible; recompiling against 1.1.0 is required. Bulk, transaction, and scan APIs remain Task. The wire protocol is unchanged.

Packages

Package(s) Version
Clustron.Zaris.* (Abstractions, Client, InProc, SDK, DistributedCache, HybridCache) 1.1.0
Clustron.Nodus.* (Abstractions, Client) 1.1.0 — license text corrected (no code change)
Clustron.Keyvus.* (7 packages) 1.1.0 — license text corrected (no code change)
Clustron.Numerous.* (Abstractions, Sdk) 0.9.0 — unchanged
dotnet add package Clustron.Zaris.Client --version 1.1.0

Server / operator package: clustron-zaris-1.1.0-win-x64.zip (attached below) — management service, node runtime, web console, and the AdminShell/ClientShell PowerShell modules.

Verification

Unit tests green (2,779 passing); 10‑minute cluster certification passed (154K ops, 0 missing / 0 wrong‑owner / 0 replica failures, 8 migration cycles validated); API‑variation certification, in‑proc + remote samples (26/26), and a live Kubernetes attach‑mode e2e all passed. Published NuGets are dependency‑vulnerability clean.

Known issues

  • The bundled web‑console SPA carries three low‑severity advisories (nanoid, react-router) scheduled for a follow‑up. The published NuGets are unaffected.

Zaris 0.9.0

Choose a tag to compare

@zeroheartbeat zeroheartbeat released this 05 Aug 13:54

Zaris 0.9.0 — Generally Available

Zaris is a distributed, in-memory key/value store for .NET — fast, replicated, and operable from a browser,
PowerShell, or your app. This release marks Zaris's general availability: production-ready, cross-platform,
and now with commercial support.

Distributed replication & high availability

  • Partitioned, replicated storage. Data is split into partitions, each kept on multiple nodes at a
    configurable replication factor.
  • Automatic failover & self-healing. Lose a node and the cluster keeps serving; replicas are restored
    automatically once capacity returns.
  • Elastic scaling. Add or remove nodes and the partition map grows and rebalances — no downtime.
  • Sizing for durability: each partition needs RF distinct instances, so run enough nodes for every partition
    to reach RF (on Kubernetes, one node per pod → a pod count that's a multiple of RF; RF2 → an even count).

Web Console

A browser-based management UI for your cluster:

  • Live cluster, node, and partition health, throughput and latency metrics, and active connections.
  • Store management — create, start, scale, and inspect stores.
  • Encryption (TLS/CA) management — download, import, and verify certificates with guided, plain-language steps.
  • Workspaces for connecting to and switching between clusters.

First-class PowerShell tooling

Redesigned AdminShell and ClientShell modules:

  • Workspace-based connectionsNew-ZrWorkspace / Use-ZrWorkspace (no more manager wiring).
  • Store lifecycle & scalingNew-ZrStore, Start-ZrStore, Add-ZrServer / Remove-ZrServer.
  • Live operationsWatch-ZrStoreMetrics with operator-first metric ordering, clearer connection errors,
    and automatic CA fetch.

A cleaner, richer client API

  • Connection strings everywhere — one API across in-process, remote, Docker, and Kubernetes:
    zaris://host:7861/store (or zariss://… for TLS), with comma-separated seed hosts and failover, and tokens
    supplied safely via env: / file:.
  • Rich data operations — get / put / delete, compare-and-swap, bulk and batch, scan and search, prefix
    operations, transactions, leases, leader election, distributed counters, rate limiting, and a distributed job
    queue.
  • ASP.NET Core caching — drop-in IDistributedCache and HybridCache providers.
  • Resilient clients — topology-aware routing with automatic retry and reconnection.

Runs everywhere: Windows, Linux, Docker, Kubernetes

  • Windows — one installer for the server, Management Service, Web Console, and PowerShell modules.
  • Linux & Docker — published container images, plus a one-command Docker Compose cluster.
  • Kubernetes — an official Helm chart with a StatefulSet, convergence-gated readiness, a
    PodDisruptionBudget, and drain-safe termination; published images; external (out-of-cluster) client access; TLS.

Security & observability

  • TLS for both client and node-to-node traffic, with pluggable CA trust — auto-issued, bring-your-own-CA,
    intermediate-signed, or pre-issued certificates — and token-based authentication.
  • OpenTelemetry — export traces, metrics, and logs to any OTLP-compatible backend, all config-gated.

Install

NuGet

dotnet add package Clustron.Zaris.Client --version 0.9.0

Windows — download clustron-zaris-0.9.0-win-x64.zip below (verify against SHA256SUMS.txt).

Docker

docker pull clustron/zaris-node:0.9.0
docker pull clustron/zaris-manager:0.9.0

Kubernetes (Helm)

helm install zaris oci://registry-1.docker.io/clustron/zaris --version 0.9.0 \
  -n zaris --create-namespace

Support

Zaris is open and free to run. Commercial support plans and professional services are available for teams
running Zaris in production — see clustron.io/support.

Telemetry & privacy

Zaris reports lightweight usage telemetry to help guide the roadmap:

  • Install events are recorded on first run per install, including basic host identity (hostname / OS user /
    domain) and a server-derived coarse location (country / region / city).
  • Feature-usage events record which control-plane features get used — anonymous, and deduplicated per day.

Opt out completely by setting CLUSTRON_TELEMETRY=false (also 0 / no) in the node or manager environment.


License: Business Source License 1.1 (BSL 1.1).

v0.2.3

v0.2.3 Pre-release
Pre-release

Choose a tag to compare

@zeroheartbeat zeroheartbeat released this 26 Mar 13:01

Release Notes

🚀 DI-Based Client Model

This release introduces a modern dependency injection (DI) based
client model
for Clustron DKV.

✨ Highlights

  • Register and resolve clients via DI
  • Support for multiple stores in a single application
  • Unified configuration for InProc and Remote modes
  • Seamless transition from embedded to distributed setups
  • Alignment with modern .NET application patterns

🔄 Migration

Old (Legacy):

var client = await DKVClient.InitializeInProc("demo");

New (Recommended):

services.AddClustronDkvStores(cfg =>
{
    cfg.AddStore("demo", s => s.UseInProc());
});

var client = await provider.GetAsync("demo");

⚠️ Note

Legacy initialization APIs are still supported but may be deprecated in
future releases.

Clustron DKV v0.2.2

Clustron DKV v0.2.2 Pre-release
Pre-release

Choose a tag to compare

@zeroheartbeat zeroheartbeat released this 15 Mar 15:57
  • Improved logging across the runtime and management services for better diagnostics.
  • Enhanced PowerShell CLI experience with improved command output and metrics display.
  • Added real-time store metrics monitoring using Watch-DkvStoreMetrics.
  • Improved documentation including updated Getting Started guide and .NET quick start.
  • Various stability improvements and internal performance optimizations.

Clustron DKV v0.2.1

Clustron DKV v0.2.1 Pre-release
Pre-release

Choose a tag to compare

@zeroheartbeat zeroheartbeat released this 06 Mar 12:04

Clustron DKV v0.2.1

This release introduces transaction support along with improvements to the logging system for better diagnostics and observability.

✨ New Features

Transactions

Clustron DKV now supports multi-key optimistic transactions, enabling atomic operations across distributed keys.

Transactions provide:

  • Atomic multi-key updates
  • Optimistic concurrency control
  • Conflict detection
  • Rollback support
  • Read-your-writes consistency

🔧 Improvements

Improved Logging

Logging has been enhanced to provide clearer operational visibility.
These changes make it easier to troubleshoot issues in both InProc and cluster deployments.

v0.2.0

v0.2.0 Pre-release
Pre-release

Choose a tag to compare

@zeroheartbeat zeroheartbeat released this 03 Mar 11:54

This release focuses on correctness, concurrency safety, API reliability, and developer experience improvements.

It also introduces a complete and standardized sample suite covering core distributed patterns.

Core Improvements

Store Name Case Insensitivity

  • Store names are now treated as case-insensitive.
  • Ensures consistent store lookup behavior across environments.
  • Improves cross-platform predictability.

Clear API Fix

  • Fixed an issue where Clear was not fully clearing the store.
  • Prefix-based clears

CAS & Locking Fixes

  • Fixed race conditions in Compare-And-Swap (CAS) operations.
  • Improved version validation under concurrent writes.
  • Addressed locking edge cases to ensure:
  • Correct conflict detection
  • No stale overwrites
  • Safe optimistic concurrency

Sample Suite Expansion

v0.2.0 introduces a comprehensive sample set demonstrating real-world distributed patterns:

  • Core API Samples
  • Basic Operations
  • Bulk Operations
  • Compare-And-Swap (CAS)
  • Distributed Counters
  • Distributed Coordination Samples
  • Lease (Expiry & Revoke)
  • Leader Election via Lease
  • Watch (Key & Prefix Subscriptions)
  • Distributed Pattern Samples
  • Distributed Rate Limiter
  • Distributed Search
  • Simplified Enterprise Job Queue

Documentation Improvements

All sample READMEs standardized

  • Migrated to unified Seeds-based configuration model
  • Removed legacy RemoteHost / RemotePort
  • Improved structure and clarity across all documentation
  • Updated Shared project documentation

Overall Impact

v0.2.0 significantly improves:

  • Concurrency correctness
  • Store consistency
  • Developer experience
  • Documentation quality
  • Distributed pattern coverage

This release strengthens Clustron DKV as a reliable foundation for building distributed systems in .NET.

Clustron DKV v0.1.0 – First Public Preview

Choose a tag to compare

@zeroheartbeat zeroheartbeat released this 13 Feb 13:28
b5c3558

Clustron DKV v0.1.1 – Initial Preview Release

This is the first public preview release of Clustron DKV, a distributed key-value store built on the Clustron cluster foundation.

✨ Included in this release

  • Distributed store creation and management-
  • Multi-instance support per node-
  • PowerShell 7 cmdlets-
  • Store start / stop management-
  • Real-time metrics monitoring-
  • Stress testing cmdlet-
  • Windows x64 self-contained distribution

📦 Package

  • clustron-dkv-0.1.1-win-x64.zip

⚙ Requirements

  • Windows x64-
  • PowerShell 7.5.4 or later

🚧 Status

  • This is an early preview intended for:
  • Evaluation-
  • Testing-
  • Development experimentation-
  • Not yet recommended for production environments.

🚀 Getting Started

  • See the Getting Started guide included in the repository for installation and setup instructions.

Version: 0.1.1
Build Type: Preview
Platform: Windows x64
License: Business Source License 1.1