mmodzelewski opened a new pull request, #3841: URL: https://github.com/apache/iggy/pull/3841
The Java SDK spoke only the legacy TCP framing, so it could not talk to server-ng, which frames every request in the VSR (Viewstamped Replication) consensus protocol. The Netty pipeline now encodes requests with VSR headers from a per-connection consensus session (client id, request counter, fence epoch) and decodes VSR replies, replacing the legacy frame codec. The server binds the session to one transport connection, so the pool pins a single channel and the connectionPoolSize builder option is gone. Transient denials replay the same encoded frame so the server dedup sees one request id: not-committed for the full 30s budget (outcome unknown), not-accepted for 2s only (refused outright, typically a demoted primary). A failed pool acquire starts a background redial that alternates the current node with the seed and replays the builder credentials. The VSR broker routes explicit partitions only, so balanced and key-based sends resolve to a concrete partition client-side (round-robin cursor, xxh32(key) % count) and group polls pick the partition from the member's assignment, synced through the new consumer-group SYNC command and fenced by generation, matching the Rust SDK. Cached routing facts refresh past a 5s staleness budget. sendMessages returns the commit confirmation (partition and base offset) instead of Void. Java CI, BDD, and examples lanes run against iggy-server-ng with the vsr feature; the SDK version bumps to 0.9.0-SNAPSHOT. On the server side, a login whose credentials were rejected no longer falls through to the malformed-payload rejection but reports InvalidCredentials. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
