# etcd 3.7 streams large ranges and boots directly from v3store

> etcd 3.7 adds RangeStream for chunked reads, optimizes keys-only queries, and boots from v3store while retaining v2 snapshots for compatibility.

Canonical URL: https://www.devobs.io/news/news-etcd-3-7-release/
By: Owen Park
Published: 2026-09-06T11:58:54.646Z
Updated: 2026-09-06T11:58:54.646Z
Event date: 2026-07-08
Section: Infrastructure

SIG etcd released etcd 3.7.0 on July 8, adding a streaming path for large range reads and completing several long-running internal migrations. The [official announcement mirrored by Kubernetes](https://kubernetes.io/blog/2026/07/08/announcing-etcd-3.7/) also records important compatibility changes for clients and container-image consumers.

## Large reads can arrive in chunks

The new RangeStream RPC lets a client consume a large result set incrementally instead of waiting while the server buffers the complete response. That makes memory use and first-result latency more predictable. Kubernetes 1.37 coordinates early use through an `EtcdRangeStream` feature gate, so cluster operators should treat the etcd and Kubernetes sides as one compatibility test.

Keys-only range requests can now use the in-memory index without loading serialized values from bbolt, except when sorting by value requires those values. Version 3.7 also boots directly from v3store and completes a move away from outdated Protobuf libraries. It still generates v2 snapshots for backward compatibility: the source identifies `--snapshot-count` as the last v2store dependency and targets its removal for 3.8. It includes updated bbolt and Raft components.

## Upgrade tests should include clients and images

The etcd client no longer honors the deprecated `grpc.WithBlock` dial option. Official 3.7 container images are multi-architecture manifests only rather than separate architecture-tagged images. Both changes can break automation even when the server’s data migration succeeds.

Before a production rollout, restore a representative snapshot into a test cluster, exercise compaction and defragmentation, and benchmark the range patterns your controllers actually issue. Verify image pinning on every target architecture and test client startup assumptions. RangeStream’s value is workload-dependent: it helps consumers prepared to process chunks, while existing unary calls keep their previous shape. A controlled rehearsal should prove quorum recovery and rollback procedures as carefully as the new read path.

## Source references

- <https://kubernetes.io/blog/2026/07/08/announcing-etcd-3.7/>
