Cognitora v0.9.1: gossip discovery, live KV prefix, and a native engine Cognitora released v0.9.1 in September 2026, adding per-model inflight caps on the gateway, fleet tokens_per_watt gauges, and an energy benchmark harness to its open-source LLM inference orchestration layer. The release follows six minor versions since v0.3.0 in May, which introduced gossip discovery (state_backend = "gossip"), etcd-optional operation, and a native cgn-infer engine built on Candle with mmap GGUF support. Cognitora positions itself as a bare-metal-first, Rust-only, engine-agnostic alternative to NVIDIA Dynamo, coordinating vLLM, SGLang, TensorRT-LLM, llama.cpp, and MLX into a KV-aware disaggregated cluster. Cognitora v0.9.1: gossip discovery, live KV prefix, and a native engine Cognitora https://github.com/antonellof/cognitora-inference is an open-source LLM inference orchestration layer. Statically linked Rust binaries sit above vLLM, SGLang, TensorRT-LLM, llama.cpp, and MLX. Those engines stay the token factories. Cognitora coordinates them into a KV-aware, disaggregated cluster. The router scores replicas by prefix overlap with sequence-chained BLAKE3 digests. Prefill and decode run on different GPUs with NIXL between them when you ask for disaggregation. Tiered KV spill lives in cgn-kvcached . No Python control plane. No hard Kubernetes dependency. The same artifacts run as systemd units on a rack, as recipes on one host, or via Helm. One node with vLLM saturates well. None of the token factories are a fleet. Hot prefixes land on the wrong replica. Prefill wants different hardware than decode. You end up writing routing, cache, and deployment layers yourself. NVIDIA Dynamo https://github.com/ai-dynamo/dynamo covers part of the space. Cognitora lands bare-metal-first, Rust-only, and engine-agnostic. The original post https://www.fratepietro.com/2026/cognitora-inference-llm-orchestration/ covers the full architecture and the Dynamo comparison. The May write-up described v0.3.0 https://github.com/antonellof/cognitora-inference/releases/tag/v0.3.0 : real /v1/embeddings , a Kubernetes CPU quickstart on GKE, cgn-ctl install --apply , and Llama 3 8B/70B recipes. Six months and six minor releases later, Cognitora sits at v0.9.1 https://github.com/antonellof/cognitora-inference/releases/tag/v0.9.1 September 2026 . The thesis stayed put: one Rust runtime, KV reuse as the routing signal, bare-metal-first. Most of what I called “designed but not fully wired” in May is wired now. A few bets landed after the May write-up. Pin the current release curl -fsSL https://inference.cognitora.dev/install | CGN VERSION=v0.9.1 sh Fastest sanity check: 8B aggregated on one GPU bash recipes/llama3-8b/vllm/agg/up.sh Cognitora-native KV offload into cgn-kvcached preview bash recipes/llama3-8b/vllm/agg-cgn/up.sh Disagg with CognitoraConnector + NIXL multi-connector preview, 2 GPUs bash recipes/llama3-8b/vllm/disagg-cgn/up.sh Native GGUF engine, no external vLLM required preview bash recipes/llama3-8b/cgn-infer/single-node/up.sh Release map: v0.3 → v0.9.1 | Version | Theme | Headline | |---|---|---| | 0.4.0 | Make the KV layer live | Prefix index populated after dispatch. cgn-kvcached eviction loop RAM watermark spill + SSD TTL . Real hit/miss/spill stats | | 0.5.0 | Native inference engine | cgn-infer : seventh binary, Candle + mmap GGUF, continuous batching, distributed layer-pipeline gRPC preview | | 0.6.0 | Feed the routing score | Engine Prometheus scraper feeds queue/cache into the score. Closed autoscaler cordon loop. Streaming cascade. TensorRT-LLM spawn driver | | 0.7.0 | OpenAI parity + live KV prefix | Tool calling, structured output, multimodal image passthrough. Post-generation KV prefixes written to etcd. SLA planner in operator. Turnkey Helm. Multi-node e2e in CI | | 0.8.0 | Etcd-optional | Gossip discovery state backend = "gossip" . Cross-cluster federation wired. Soft watt limit . ROCm. Capability-aware routing. Fleet dashboard | | 0.9.0 | Carbon + live KV prefix reconciliation | Carbon-aware admission for deferrable workloads. KV epoch + eviction-burst prefix reconciliation | | 0.9.1 | Admission + energy metrics | Per-model inflight caps on the gateway. Fleet tokens per watt gauges. Energy benchmark harness | | Unreleased | CognitoraConnector | kv offload = "cgn" spills vLLM blocks into cgn-kvcached via python/cgn-kv-connector . Router prefix digest passthrough to the connector | The sections below group by operator impact, not by semver. The routing score now uses real signals In May I described KV-aware routing as sequence-chained BLAKE3 digests plus longest-prefix overlap, with load, power, and capacity terms in the score. In v0.3 those secondary terms were mostly inert. The architecture supported them. The data path did not fill them. v0.4 turned on optimistic prefix recording after every successful dispatch. Prefill and decode nodes in a disaggregated pair both get indexed. v0.6 closed the loop on load and capacity. cgn-agent scrapes the engine Prometheus /metrics vLLM queue depth and GPU cache usage, SGLang equivalents and publishes numbers in the heartbeat and Agent.Health RPC. Nodes with unknown capacity report total blocks == 0 instead of inventing a value. v0.7 replaced pure optimism with live KV prefix tracking. After a generation completes, the agent writes lease-bound etcd keys under /cognitora/kv/