Skip to content

feat(cluster): preserve isolated replication over gRPC - #495

Open
yordis wants to merge 1 commit into
yordis/chore-retire-core-tcp-testsfrom
yordis/feat-grpc-cluster-endpoints
Open

yordis wants to merge 1 commit into
yordis/chore-retire-core-tcp-testsfrom
yordis/feat-grpc-cluster-endpoints

Conversation

@yordis

@yordis yordis commented Sep 12, 2026

Copy link
Copy Markdown
Member
  • Preserves isolated replication topology and failure detection on the supported gRPC transport.

@yordis
yordis requested a review from a team as a code owner September 12, 2026 23:22
@cursor

cursor Bot commented Sep 12, 2026

Copy link
Copy Markdown

PR Summary

High Risk
Changes core cluster membership, gossip serialization, and replication listener isolation—security- and availability-critical paths—with a breaking shift away from TCP endpoints in the node model.

Overview
This PR replaces the old internal/external TCP cluster model with HTTP for client/admin traffic and a dedicated HTTP/2 listener for gRPC replication, including gossip that carries a separate ReplicationEndPoint (falling back to HTTP when absent for mixed-version clusters).

Runtime wiring: Kestrel now listens on both node and replication addresses; ReplicationEndpointPolicy returns 404 unless replication traffic hits the replication listener on the replication service path (and blocks that path on the main node port). NodeConnectionTracker wraps connections to record bytes, TLS, and HTTP vs gRPC usage for operator visibility. The cluster UI and replica status logic drop TCP columns and match replicas by HTTP endpoint instead of internal TCP.

Configuration & API cleanup: Adds ReplicationPortAdvertiseAs (with deprecated alias compatibility), validates that node and replication listeners cannot overlap on the same address/port, and simplifies leader advertisement to HTTP only (including NotHandled leader info and forwarding tests).

Tests: Removes the TCP unit-test plugin, legacy ClientAPI TCP helpers, and TCP transport tests; cluster/integration coverage moves to gRPC streams and updated mini-node fixtures with node + replication endpoints.

Reviewed by Cursor Bugbot for commit ee40129. Bugbot is set up for automated code reviews on this repo. Configure here.

@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: db54c1b2-c65c-421d-8ea8-ae0c7293c545

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@yordis
yordis added this pull request to stack #500 September 12, 2026 23:22

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from dbf4cb3 to ba04fb5 Compare September 13, 2026 00:15
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch 2 times, most recently from 76309a0 to 60eb376 Compare September 13, 2026 00:33
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from ba04fb5 to 6c0e186 Compare September 13, 2026 00:33
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from 60eb376 to 59514f1 Compare September 13, 2026 00:58
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch 2 times, most recently from 1330f22 to e681f13 Compare September 13, 2026 01:16
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch 2 times, most recently from 059ca6b to 9cc1112 Compare September 13, 2026 01:31
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch 2 times, most recently from 504ff97 to f9a5f73 Compare September 13, 2026 01:46
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from 0e1e63e to 104f2a6 Compare September 13, 2026 02:04
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch 2 times, most recently from 07068b1 to f0fb411 Compare September 13, 2026 02:29
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from 104f2a6 to d45ae37 Compare September 13, 2026 02:29
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from f0fb411 to e243e25 Compare September 13, 2026 02:59
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch 2 times, most recently from 9739ad5 to d499103 Compare September 13, 2026 03:14
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from e243e25 to 32b689d Compare September 13, 2026 03:14
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from d499103 to d5dc2ee Compare September 13, 2026 03:46
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from 32b689d to 430b47b Compare September 13, 2026 03:46
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from d5dc2ee to 183d819 Compare September 13, 2026 04:23
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch 2 times, most recently from 2272c22 to 36955e8 Compare September 13, 2026 06:04
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from 183d819 to 2c805a1 Compare September 13, 2026 06:04
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from 5233227 to d04c94d Compare September 13, 2026 21:00
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from 2d332c1 to 9989238 Compare September 13, 2026 21:00
@yordis
yordis removed this pull request from stack #500 September 17, 2026 01:12
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from 9989238 to a173352 Compare September 17, 2026 01:14
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch 2 times, most recently from 620fc9f to dfc40ad Compare September 17, 2026 01:23
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from 0e43b8c to a8f05de Compare September 17, 2026 02:01
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from dfc40ad to 9706285 Compare September 17, 2026 02:01
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from a8f05de to a25e23b Compare September 17, 2026 02:37
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch 2 times, most recently from 4e72264 to 41ed48e Compare September 17, 2026 03:26
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch 2 times, most recently from 313e9a7 to e782529 Compare September 17, 2026 04:25
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch 2 times, most recently from afa6107 to a7136f8 Compare September 17, 2026 22:47
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from e782529 to 922e9ac Compare September 17, 2026 22:47
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from a7136f8 to 1d2bf05 Compare September 17, 2026 22:57
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch 2 times, most recently from a0c75a7 to cc5a97d Compare September 17, 2026 23:43
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch 2 times, most recently from 300846c to 267a67f Compare September 18, 2026 00:26
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from cc5a97d to 009f1c5 Compare September 18, 2026 00:26
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from 267a67f to 6e27bc8 Compare September 18, 2026 00:44
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from 009f1c5 to 0ed157d Compare September 18, 2026 00:44

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 6e27bc8. Configure here.

@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from 0ed157d to 8a8a64e Compare September 18, 2026 00:49
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from 6e27bc8 to 7ee7094 Compare September 18, 2026 00:49
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis
yordis force-pushed the yordis/feat-grpc-cluster-endpoints branch from 7ee7094 to ee40129 Compare September 18, 2026 01:43
@yordis
yordis force-pushed the yordis/chore-retire-core-tcp-tests branch from 8a8a64e to c0537ba Compare September 18, 2026 01:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant