etcd 3.7.0 Beta Arrives With RangeStream RPC and Complete Removal of the Legacy v2 API
SIG-etcd has released the first beta of etcd 3.7.0, introducing streaming reads for large result sets, up to 2x faster lease operations, and the complete elimination of all v2 API code.
Editor's Note ·
- Correction:
- The article states "On May 19, 2026, SIG-etcd published the first beta of etcd 3.7.0." The Kubernetes blog announcement (https://kubernetes.io/blog/2026/05/20/etcd-370-beta/) is dated Wednesday, May 20, 2026. While the GitHub release tag was created on May 19 at 20:02 UTC, the formal blog announcement — which the article primarily cites — was published on May 20.
- Clarification:
- The article presents Jeffrey Ying's statement as two separate attributed quotes in distinct paragraphs. In the source (the Kubernetes blog), Ying's words appear as a single continuous quote: "I've always been fascinated by database internals... while maintaining the project's high bar for reliability and code quality." The verbatim text is accurate, but the split framing misrepresents one statement as two.
The Kubernetes project’s storage backbone is preparing for its next major release. On May 19, 2026, SIG-etcd published the first beta of etcd 3.7.0, delivering three substantial improvements: a new streaming reads interface, the final removal of the long-deprecated v2 API, and a set of performance improvements targeting lease and user-management operations.
etcd serves as the consistent and highly-available key value store for all API server data in every Kubernetes cluster. Because every object creation, update, and deletion passes through it, performance and correctness regressions in etcd propagate directly into cluster reliability.
RangeStream: Streaming Reads for Large Result Sets
The most visible new feature in 3.7.0 is the RangeStream RPC. The Kubernetes blog announcement describes the problem it solves: “In etcd v3.6 and earlier, it is challenging to work with requests that return large resultsets. The client or requesting application is forced to wait for the full result set, leading to unpredictable latency and memory usage. The RangeStream RPC lets calling applications accept result sets in chunks, reducing latency and making buffering memory usage more predictable.”
The implementation was contributed by Jeffrey Ying, a Google engineer who submitted the client-side work in pull request #21358, which merged on April 30, 2026. In his own words from the announcement: “I’ve always been fascinated by database internals, and building RangeStream was a great opportunity to solve a bottleneck we were hitting in production with Kubernetes. It was the perfect opportunity to collaborate across projects and improve the ecosystem as a whole.”
Ying also reflected on the onboarding experience: “Jumping into etcd as a new contributor had a bit of a learning curve, but the community is incredibly welcoming. The leads were very receptive to my ideas and helped me iterate quickly, while maintaining the project’s high bar for reliability and code quality.”
Complete v2 API Removal
etcd 3.7.0 marks the end of a multi-year migration. According to the announcement, “The last vestiges of etcd v2store have been removed in v3.7, making this the first release that is 100% on v3store. This includes discovery, bootstrap, v2 requests, and the v2 client. Our team has also removed multiple deprecated experimental flags.”
The CHANGELOG for 3.7 lists the specific breaking changes: removal of v2discovery, the client/v2 package, v2 HTTP request handling, and a collection of deprecated experimental flags that had been carried forward across multiple release cycles. Operators running clusters that still relied on any v2 API path or the old discovery mechanism will need to migrate before upgrading.
The announcement also notes that etcd v3.4 reached end-of-life on May 15, 2026, narrowing the range of supported versions as the project moves forward.
Performance and Protocol Improvements
Beyond the headline features, the CHANGELOG documents several internal improvements. Lease and user/role operations receive up to a 2x performance improvement, achieved by updating (*readView) Rev() to use SharedBufReadTxMode. A new FastLeaseKeepAlive feature enables faster lease renewal by skipping the wait for the applied index in eligible cases. The release also adds support for Unix socket endpoints and a new etcd_server_request_duration_seconds metric for more granular observability. Binaries are compiled with Go 1.26.
Release Timeline
The beta tag signals that the API surface is stabilizing but the release is not yet production-ready. The announcement outlines the path forward: additional betas are planned to accommodate ongoing protobuf library refactoring, with release candidates and a final 3.7.0 release expected between June and early July 2026. Users who want to test the new streaming interface or validate the v2 removal against their workloads can track progress through the v3.7.0-beta.0 release on GitHub.