This is an automated email from the ASF dual-hosted git repository.

hubcio pushed a commit to branch feat/partition-routing
in repository https://gitbox.apache.org/repos/asf/iggy.git

commit 5c9a54f12cdc304d9ef958688d4c4f854682eab3
Author: Hubert Gruszecki <[email protected]>
AuthorDate: Tue Oct 13 18:26:42 2026 +0200

    docs(cluster): describe routing compatibility changes
    
    Replica control frames and client route replies both changed.
    Document the coordinated upgrade requirement and the metadata
    exposed by an authorized route lookup.
---
 core/binary_protocol/src/consensus/header.rs                | 13 ++++++++++---
 .../src/requests/messages/get_partition_route.rs            |  2 +-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/core/binary_protocol/src/consensus/header.rs 
b/core/binary_protocol/src/consensus/header.rs
index 3eafdf431..afccb0cba 100644
--- a/core/binary_protocol/src/consensus/header.rs
+++ b/core/binary_protocol/src/consensus/header.rs
@@ -44,9 +44,16 @@
 //! Older replicas cannot report live sessions to a new primary, which would
 //! expire their consumer-group memberships after the configured timeout.
 //!
-//! `Prepare`, `Request`, `Reply`, and `Eviction` are unaffected. Prepares keep
-//! `checksum` as their view-independent identity, and the three client-facing
-//! headers are sealed on neither side, so SDKs are untouched.
+//! Session retirement progress (31), forwarding completion (32), and the
+//! partition incarnation fields in control headers also require matching
+//! replicas. The incarnation occupies bytes older builds treated as reserved;
+//! a mixed cluster cannot safely identify the partition history of a frame.
+//!
+//! Frame sealing does not change `Prepare`, `Request`, `Reply`, or `Eviction`.
+//! Prepares keep `checksum` as their view-independent identity, and the three
+//! client-facing headers are sealed on neither side. Separate client protocol
+//! changes, including partition routes and replica IDs in cluster metadata,
+//! require a coordinated SDK upgrade as well.
 
 use super::{Command, ConsensusError, Operation};
 use crate::WireIdentifier;
diff --git a/core/binary_protocol/src/requests/messages/get_partition_route.rs 
b/core/binary_protocol/src/requests/messages/get_partition_route.rs
index 137262341..b6b74c9e9 100644
--- a/core/binary_protocol/src/requests/messages/get_partition_route.rs
+++ b/core/binary_protocol/src/requests/messages/get_partition_route.rs
@@ -21,7 +21,7 @@ use crate::codec::{WireDecode, WireEncode, read_u32_le};
 use crate::{WireError, WireIdentifier};
 
 /// Route lookup for one partition, authorized by send or poll permission on 
its
-/// topic, without exposing topic details. The reply is a
+/// topic. The reply includes the partition count, view and primary in a
 /// 
[`PartitionRouteResponse`](crate::responses::messages::PartitionRouteResponse).
 #[derive(Debug, Clone, PartialEq, Eq)]
 pub struct GetPartitionRouteRequest {

Reply via email to