Skip to content

fix(transport): preserve behavior across the gRPC boundary - #486

Closed
yordis wants to merge 4 commits into
masterfrom
yordis/chore-remove-legacy-tcp
Closed

fix(transport): preserve behavior across the gRPC boundary#486
yordis wants to merge 4 commits into
masterfrom
yordis/chore-remove-legacy-tcp

Conversation

@yordis

@yordis yordis commented Sep 12, 2026

Copy link
Copy Markdown
Member
  • A single supported network boundary reduces operational ambiguity and prevents obsolete behavior from diverging from the maintained gRPC path.
  • Preserving operator visibility and validation workflows prevents protocol retirement from erasing supported behavior.
  • Keeping transport-independent regression coverage makes this compatibility decision auditable without retaining unsupported protocol machinery.

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

cursor Bot commented Sep 12, 2026

Copy link
Copy Markdown

PR Summary

High Risk
This changes cluster networking, replication transport, exposed ports, and public protos—any remaining TCP clients or firewall rules keyed on the old listener will break until migrated to gRPC.

Overview
This PR retires the legacy EventStore TCP client and replication wire protocol and documents the node as gRPC-only over HTTP(S), with cluster replication on a dedicated HTTP/2 listener bound to ReplicationIp/ReplicationPort.

Runtime and ops: Kestrel now listens on both the node endpoint and the replication endpoint (HTTP/2-only for replication). ReplicationEndpointPolicy returns 404 when replication gRPC is hit on the wrong listener. NodeConnectionTracker counts bytes and classifies HTTP vs gRPC on accepted connections, feeding the Admin UI and queue dashboard instead of TcpStats. Cluster and observability pages drop internal/external TCP columns and show HTTP/gRPC connections plus gRPC replication sessions. Docker/compose samples set EVENTSTORE_NODE_IP, stop exposing port 1113 in the image, and CI drops the core-clientapi test matrix shards.

Contracts and tests: ClientMessageDtos.proto is removed from the proto lock; gossip/monitoring protos drop TCP endpoint fields and the TcpStats RPC (replication stats remain). Legacy ClientAPI integration tests and related helpers are deleted; scripts/test.sh filters and packages shift accordingly (EventStore.Client package removed, EventStore.Client.Grpc.Operations added).

Docs: Networking, cluster, security, installation, and upgrade guides are rewritten around two HTTP(S) interfaces, follower forwarding over gRPC, and migration away from TCP listener settings (with ReplicationPortAdvertiseAs replacing deprecated TCP advertise names).

Reviewed by Cursor Bugbot for commit 17b74e2. 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

Too many files!

This PR contains 406 files, which is 306 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 3fe9d1c6-abdb-4f13-b323-4c3474df8b59

📥 Commits

Reviewing files that changed from the base of the PR and between 53e5942 and 17b74e2.

⛔ Files ignored due to path filters (1)
  • proto.lock is excluded by !**/*.lock
📒 Files selected for processing (406)
  • .github/workflows/build-container-ubuntu-lts.yml
  • .gitignore
  • Dockerfile
  • docker-compose.yml
  • docs/README.md
  • docs/admin-ui.md
  • docs/architecture.md
  • docs/cluster.md
  • docs/diagnostics/README.md
  • docs/installation.md
  • docs/networking.md
  • docs/security.md
  • docs/upgrade-guide.md
  • docs/whatsnew.md
  • samples/server/docker-compose-cluster.yaml
  • scripts/test.sh
  • src/Directory.Packages.props
  • src/EventStore.ClusterNode/Components/Pages/Cluster.razor
  • src/EventStore.ClusterNode/Components/Pages/Observability.razor
  • src/EventStore.ClusterNode/Components/Services/ClusterStatusService.cs
  • src/EventStore.ClusterNode/Components/Services/NodeConnectionTracker.cs
  • src/EventStore.ClusterNode/Components/Services/QueueDashboardService.cs
  • src/EventStore.ClusterNode/Components/Services/ReplicationEndpointPolicy.cs
  • src/EventStore.ClusterNode/Program.cs
  • src/EventStore.ClusterNode/metricsconfig.json
  • src/EventStore.ClusterNode/ui-assets/js/queue-dashboard.js
  • src/EventStore.Core.Tests/Authorization/LegacyPolicyVerification.cs
  • src/EventStore.Core.Tests/ClientAPI/DataStructures/concurrent_queue_wrapper_should.cs
  • src/EventStore.Core.Tests/ClientAPI/ExpectedVersion64Bit/MiniNodeWithExistingRecords.cs
  • src/EventStore.Core.Tests/ClientAPI/ExpectedVersion64Bit/append_to_stream_with_event_numbers_greater_than_2_billion.cs
  • src/EventStore.Core.Tests/ClientAPI/ExpectedVersion64Bit/catchup_subscription_to_all_with_event_numbers_greater_than_2_billion.cs
  • src/EventStore.Core.Tests/ClientAPI/ExpectedVersion64Bit/persistent_subscription_with_event_numbers_greater_than_2_billion.cs
  • src/EventStore.Core.Tests/ClientAPI/ExpectedVersion64Bit/read_stream_with_event_numbers_greater_than_2_billion.cs
  • src/EventStore.Core.Tests/ClientAPI/ExpectedVersion64Bit/read_stream_with_link_to_event_with_event_number_greater_than_int_maxvalue.cs
  • src/EventStore.Core.Tests/ClientAPI/ExpectedVersion64Bit/subscribe_to_stream_with_link_to_event_with_event_number_greater_than_int_maxvalue.cs
  • src/EventStore.Core.Tests/ClientAPI/ExpectedVersion64Bit/subscriptions_on_stream_with_event_numbers_greater_than_2_billion.cs
  • src/EventStore.Core.Tests/ClientAPI/ExpectedVersion64Bit/transactions_on_stream_with_event_numbers_greater_than_2_billion.cs
  • src/EventStore.Core.Tests/ClientAPI/Helpers/EventDataComparer.cs
  • src/EventStore.Core.Tests/ClientAPI/Helpers/EventsStream.cs
  • src/EventStore.Core.Tests/ClientAPI/Helpers/TcpType.cs
  • src/EventStore.Core.Tests/ClientAPI/Helpers/TestConnection.cs
  • src/EventStore.Core.Tests/ClientAPI/Helpers/TestConnectionLifecycle.cs
  • src/EventStore.Core.Tests/ClientAPI/Helpers/TestEvent.cs
  • src/EventStore.Core.Tests/ClientAPI/Helpers/Writer.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/AuthenticationTestBase.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/all_stream_with_no_acl_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/authorized_default_credentials_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/delete_stream_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/multiple_role_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/overriden_system_stream_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/overriden_system_stream_security_for_all.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/overriden_user_stream_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/read_all_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/read_stream_meta_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/read_stream_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/stream_security_inheritance.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/subscribe_to_all_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/subscribe_to_stream_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/system_stream_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/transactional_write_stream_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/write_stream_meta_security.cs
  • src/EventStore.Core.Tests/ClientAPI/Security/write_stream_security.cs
  • src/EventStore.Core.Tests/ClientAPI/SpecificationWithLinkToToDeletedEvents.cs
  • src/EventStore.Core.Tests/ClientAPI/SpecificationWithLinkToToMaxCountDeletedEvents.cs
  • src/EventStore.Core.Tests/ClientAPI/SpecificationWithMiniNode.cs
  • src/EventStore.Core.Tests/ClientAPI/SystemData/clientapi_tcp_package.cs
  • src/EventStore.Core.Tests/ClientAPI/UserManagement/TestWithNode.cs
  • src/EventStore.Core.Tests/ClientAPI/append_to_stream.cs
  • src/EventStore.Core.Tests/ClientAPI/append_to_stream_with_hash_collision.cs
  • src/EventStore.Core.Tests/ClientAPI/appending_to_implicitly_created_stream.cs
  • src/EventStore.Core.Tests/ClientAPI/appending_to_implicitly_created_stream_using_transaction.cs
  • src/EventStore.Core.Tests/ClientAPI/appending_to_streams_across_restart.cs
  • src/EventStore.Core.Tests/ClientAPI/catch_up_subscription_handles_errors.cs
  • src/EventStore.Core.Tests/ClientAPI/catchup_filtered_subscription.cs
  • src/EventStore.Core.Tests/ClientAPI/catchup_subscription_handles_small_batch_sizes.cs
  • src/EventStore.Core.Tests/ClientAPI/connect.cs
  • src/EventStore.Core.Tests/ClientAPI/connecting_to_a_persistent_subscription.cs
  • src/EventStore.Core.Tests/ClientAPI/connecting_to_a_persistent_subscription_async.cs
  • src/EventStore.Core.Tests/ClientAPI/connecting_with_connection_string.cs
  • src/EventStore.Core.Tests/ClientAPI/connection_string.cs
  • src/EventStore.Core.Tests/ClientAPI/create_persistent_subscription.cs
  • src/EventStore.Core.Tests/ClientAPI/deleting_persistent_subscription.cs
  • src/EventStore.Core.Tests/ClientAPI/deleting_stream.cs
  • src/EventStore.Core.Tests/ClientAPI/event_store_connection_should.cs
  • src/EventStore.Core.Tests/ClientAPI/isjson_flag_on_event.cs
  • src/EventStore.Core.Tests/ClientAPI/persistent_connect_integration_tests.cs
  • src/EventStore.Core.Tests/ClientAPI/read_all_events_backward_filtered_should.cs
  • src/EventStore.Core.Tests/ClientAPI/read_all_events_backward_should.cs
  • src/EventStore.Core.Tests/ClientAPI/read_all_events_filtered_paging_should.cs
  • src/EventStore.Core.Tests/ClientAPI/read_all_events_forward_filtered_should.cs
  • src/EventStore.Core.Tests/ClientAPI/read_all_events_forward_should.cs
  • src/EventStore.Core.Tests/ClientAPI/read_all_events_forward_with_hard_deleted_stream_should.cs
  • src/EventStore.Core.Tests/ClientAPI/read_all_events_forward_with_linkto_passed_max_count.cs
  • src/EventStore.Core.Tests/ClientAPI/read_all_events_forward_with_linkto_to_deleted_event.cs
  • src/EventStore.Core.Tests/ClientAPI/read_all_events_forward_with_soft_deleted_stream_should.cs
  • src/EventStore.Core.Tests/ClientAPI/read_allevents_backward_with_linkto_deleted_event.cs
  • src/EventStore.Core.Tests/ClientAPI/read_event_should.cs
  • src/EventStore.Core.Tests/ClientAPI/read_event_stream_backward_should.cs
  • src/EventStore.Core.Tests/ClientAPI/read_event_stream_forward_should.cs
  • src/EventStore.Core.Tests/ClientAPI/read_event_with_hash_collision.cs
  • src/EventStore.Core.Tests/ClientAPI/read_from_persistent_subscription_with_link_resolution_when_stream_name_contains_at_symbol.cs
  • src/EventStore.Core.Tests/ClientAPI/read_stream_events_backward_with_hash_collision.cs
  • src/EventStore.Core.Tests/ClientAPI/read_stream_events_forward_with_hash_collision.cs
  • src/EventStore.Core.Tests/ClientAPI/read_stream_events_with_unresolved_linkto.cs
  • src/EventStore.Core.Tests/ClientAPI/soft_delete.cs
  • src/EventStore.Core.Tests/ClientAPI/subscribe_should.cs
  • src/EventStore.Core.Tests/ClientAPI/subscribe_to_all_catching_up_should.cs
  • src/EventStore.Core.Tests/ClientAPI/subscribe_to_all_filtered_should.cs
  • src/EventStore.Core.Tests/ClientAPI/subscribe_to_all_should.cs
  • src/EventStore.Core.Tests/ClientAPI/subscribe_to_stream_catching_up_should.cs
  • src/EventStore.Core.Tests/ClientAPI/transaction.cs
  • src/EventStore.Core.Tests/ClientAPI/update_persistent_subscription.cs
  • src/EventStore.Core.Tests/ClientAPI/when_committing_empty_transaction.cs
  • src/EventStore.Core.Tests/ClientAPI/when_having_max_count_set_for_stream.cs
  • src/EventStore.Core.Tests/ClientAPI/when_having_truncatebefore_set_for_stream.cs
  • src/EventStore.Core.Tests/ClientAPI/when_working_with_metadata.cs
  • src/EventStore.Core.Tests/ClientAPI/when_working_with_stream_metadata_as_byte_array.cs
  • src/EventStore.Core.Tests/ClientAPI/when_working_with_stream_metadata_as_structured_info.cs
  • src/EventStore.Core.Tests/ClientOperations/specification_with_bare_vnode.cs
  • src/EventStore.Core.Tests/ClientOperations/when_committing_a_transaction_with_data.cs
  • src/EventStore.Core.Tests/Cluster/MemberInfoTests.cs
  • src/EventStore.Core.Tests/DefaultData.cs
  • src/EventStore.Core.Tests/EventStore.Core.Tests.csproj
  • src/EventStore.Core.Tests/Helpers/ClientApiLoggerBridge.cs
  • src/EventStore.Core.Tests/Helpers/MiniClusterNode.cs
  • src/EventStore.Core.Tests/Helpers/MiniNode.cs
  • src/EventStore.Core.Tests/Helpers/TestCertificates.cs
  • src/EventStore.Core.Tests/Helpers/TestFixtureWithExistingEvents.cs
  • src/EventStore.Core.Tests/Http/HealthChecks/when_performing_a_live_check.cs
  • src/EventStore.Core.Tests/Integration/Archive/when_archiving_and_restoring_a_cluster.cs
  • src/EventStore.Core.Tests/Integration/authenticated_requests_made_from_a_follower.cs
  • src/EventStore.Core.Tests/Integration/specification_with_a_single_node.cs
  • src/EventStore.Core.Tests/Integration/specification_with_cluster.cs
  • src/EventStore.Core.Tests/Integration/when_a_single_node_is_restarted_multiple_times.cs
  • src/EventStore.Core.Tests/Integration/when_cluster_nodes_are_restarted.cs
  • src/EventStore.Core.Tests/Integration/when_node_becomes_leader_with_unindexed_data.cs
  • src/EventStore.Core.Tests/Regression/GrpcOnlySurfaceParityTests.cs
  • src/EventStore.Core.Tests/Services/ElectionsService/ClusterSettingsFactory.cs
  • src/EventStore.Core.Tests/Services/ElectionsService/ClusterVNodeSettings.cs
  • src/EventStore.Core.Tests/Services/ElectionsService/ElectionServiceUnit.cs
  • src/EventStore.Core.Tests/Services/ElectionsService/ElectionsServiceTests.cs
  • src/EventStore.Core.Tests/Services/ElectionsService/LeaderNode/ElectionsServiceUnitTests.cs
  • src/EventStore.Core.Tests/Services/ElectionsService/Randomized/RandomizedElectionsTestCase.cs
  • src/EventStore.Core.Tests/Services/ElectionsService/Randomized/UpdateGossipProcessor.cs
  • src/EventStore.Core.Tests/Services/ElectionsService/Randomized/elections_service_5_nodes_with_1_known_when_started_and_set_full_imediately.cs
  • src/EventStore.Core.Tests/Services/ElectionsService/Randomized/elections_service_5_nodes_with_1_known_when_started_and_set_to_full_later.cs
  • src/EventStore.Core.Tests/Services/GossipService/NodeGossipServiceTests.cs
  • src/EventStore.Core.Tests/Services/PersistentSubscription/PersistentSubscriptionTests.cs
  • src/EventStore.Core.Tests/Services/Replication/LeaderReplication/when_replica_subscribes.cs
  • src/EventStore.Core.Tests/Services/Replication/LogReplication/LogReplicationFixture.cs
  • src/EventStore.Core.Tests/Services/Replication/ReadOnlyReplica/connecting_to_read_only_replica.cs
  • src/EventStore.Core.Tests/Services/RequestForwarding/GrpcRequestForwardingServiceTests.cs
  • src/EventStore.Core.Tests/Services/RequestForwarding/GrpcRequestForwardingTransportSecurityTests.cs
  • src/EventStore.Core.Tests/Services/RequestForwarding/RequestForwardingServiceTests.cs
  • src/EventStore.Core.Tests/Services/RequestManagement/Service/RequestManagerServiceSpecification.cs
  • src/EventStore.Core.Tests/Services/RequestManagement/Service/when_writing_and_deposed_as_leader.cs
  • src/EventStore.Core.Tests/Services/RequestManagement/Service/when_writing_and_deposed_as_leader_and_replica_moves_forward.cs
  • src/EventStore.Core.Tests/Services/Storage/AllReader/when_reading_all_with_disallowed_streams.cs
  • src/EventStore.Core.Tests/Services/Storage/AllReader/when_reading_all_with_filtering.cs
  • src/EventStore.Core.Tests/Services/Storage/HashCollisions/with_hash_collisions.cs
  • src/EventStore.Core.Tests/Services/Storage/Scavenge/when_running_a_scavenge_from_storage_scavenger.cs
  • src/EventStore.Core.Tests/Services/Transport/Enumerators/Enumerator.AllSubscription.CombinationTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Enumerators/Enumerator.AllSubscriptionFiltered.CombinationTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Enumerators/Enumerator.CombinationTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Enumerators/Enumerator.StreamSubscription.CombinationTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Grpc/Forwarding/ForwardingGrpcCodecTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Grpc/MonitoringTests/TcpStatsTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Grpc/Replication/GrpcReplicaServiceFactoryTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Grpc/Replication/GrpcReplicaServiceSupervisorTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Grpc/StreamsTests/DeleteTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Grpc/StreamsTests/ReadStreamsForwardTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Http/Authorization/authorization_tests.cs
  • src/EventStore.Core.Tests/Services/Transport/Tcp/TcpClientDispatcherTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Tcp/TcpConnectionManagerTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Tcp/TcpConnectionSslTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Tcp/TcpConnectionTests.cs
  • src/EventStore.Core.Tests/Services/Transport/Tcp/core_tcp_package.cs
  • src/EventStore.Core.Tests/Services/Transport/Tcp/ssl_connection.cs
  • src/EventStore.Core.Tests/Services/Transport/Tcp/ssl_connections_mutual_auth.cs
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/ca/ca.crt
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/ca/ca.key
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/ca_untrusted/ca.crt
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/ca_untrusted/ca.key
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/generate_ca.sh
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/generate_cert.sh
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/node1/node1.crt
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/node1/node1.key
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/node2/node2.crt
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/node2/node2.key
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/node3/node3.crt
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/node3/node3.key
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/untrusted/untrusted.crt
  • src/EventStore.Core.Tests/Services/Transport/Tcp/test_certificates/untrusted/untrusted.key
  • src/EventStore.Core.Tests/Services/Transport/Tcp/when_invalid_data_is_sent_over_tcp.cs
  • src/EventStore.Core.Tests/Services/Transport/Tcp/with_intermediate_certificates.cs
  • src/EventStore.Core.Tests/Services/UserManagementService/user_management_service.cs
  • src/EventStore.Core.Tests/Services/VNode/InaugurationManager/InaugurationManagerTests.cs
  • src/EventStore.Core.Tests/Services/VNode/ShutdownServiceTests.cs
  • src/EventStore.Core.Tests/Services/VNode/leader_info_provider.cs
  • src/EventStore.Core.Tests/Services/VNode/startup_should.cs
  • src/EventStore.Core.Tests/TcpApiTestPlugin/PublicTcpApiTestService.cs
  • src/EventStore.Core.Tests/TcpApiTestPlugin/TcpApiTestOptions.cs
  • src/EventStore.Core.Tests/TcpApiTestPlugin/TcpApiTestPlugin.cs
  • src/EventStore.Core.Tests/TransactionLog/Truncation/when_truncating_database.cs
  • src/EventStore.Core.Tests/Transforms/TransformTests.cs
  • src/EventStore.Core.Tests/copying_metadata.cs
  • src/EventStore.Core.XUnit.Tests/Configuration/ClusterNodeOptionsTests/ClusterVNodeOptionsScenarios.cs
  • src/EventStore.Core.XUnit.Tests/Configuration/ClusterNodeOptionsTests/when_building/with_cluster_node_and_custom_settings.cs
  • src/EventStore.Core.XUnit.Tests/Configuration/ClusterNodeOptionsTests/when_building/with_default_settings.cs
  • src/EventStore.Core.XUnit.Tests/Configuration/ClusterNodeOptionsTests/when_building/with_single_node_and_custom_settings.cs
  • src/EventStore.Core.XUnit.Tests/Configuration/ClusterNodeOptionsTests/when_building/with_tls.cs
  • src/EventStore.Core.XUnit.Tests/Configuration/ClusterNodeOptionsTests/when_shutting_down_an_isolated_cluster_member.cs
  • src/EventStore.Core.XUnit.Tests/Configuration/ClusterVNodeOptionsTests.cs
  • src/EventStore.Core.XUnit.Tests/Configuration/ClusterVNodeOptionsValidatorTests.cs
  • src/EventStore.Core.XUnit.Tests/Metrics/ElectionsCounterTrackerTests.cs
  • src/EventStore.Core.XUnit.Tests/Services/Storage/InMemory/GossipListenerServiceTests.cs
  • src/EventStore.Core.XUnit.Tests/Telemetry/TelemetryServiceTests.cs
  • src/EventStore.Core/Authorization/AuthorizationPolicies/LegacyPolicySelectorFactory.cs
  • src/EventStore.Core/Cluster/ClientClusterInfo.cs
  • src/EventStore.Core/Cluster/ClusterInfo.cs
  • src/EventStore.Core/Cluster/MemberInfo.cs
  • src/EventStore.Core/ClusterVNode.cs
  • src/EventStore.Core/Configuration/ClusterVNodeOptions.cs
  • src/EventStore.Core/Configuration/ClusterVNodeOptionsExtensions.cs
  • src/EventStore.Core/Configuration/ClusterVNodeOptionsValidator.cs
  • src/EventStore.Core/Data/GossipAdvertiseInfo.cs
  • src/EventStore.Core/Data/VNodeInfo.cs
  • src/EventStore.Core/EventStore.Core.csproj
  • src/EventStore.Core/Helpers/IAsyncMessageFramer.cs
  • src/EventStore.Core/Helpers/LengthPrefixSuffixFramer.cs
  • src/EventStore.Core/Helpers/MessageFramingException.cs
  • src/EventStore.Core/Messages/ClientMessage.cs
  • src/EventStore.Core/Messages/ClusterInfoDto.cs
  • src/EventStore.Core/Messages/MemberInfoDto.cs
  • src/EventStore.Core/Messages/MonitoringMessage.cs
  • src/EventStore.Core/Messages/TcpClientMessageDto.cs
  • src/EventStore.Core/Messages/TcpMessage.cs
  • src/EventStore.Core/Messaging/CoreMessage.cs
  • src/EventStore.Core/NodeTcpOptions.cs
  • src/EventStore.Core/Services/AuthorizationGateway.cs
  • src/EventStore.Core/Services/ElectionsService.cs
  • src/EventStore.Core/Services/Gossip/GossipServiceBase.cs
  • src/EventStore.Core/Services/Gossip/NodeGossipService.cs
  • src/EventStore.Core/Services/Monitoring/MonitoringService.cs
  • src/EventStore.Core/Services/Monitoring/SystemStatsHelper.cs
  • src/EventStore.Core/Services/PersistentSubscription/PersistentSubscriptionService.cs
  • src/EventStore.Core/Services/Replication/GrpcReplicaServiceSupervisor.cs
  • src/EventStore.Core/Services/Replication/LogRecordFramer.cs
  • src/EventStore.Core/Services/Replication/ReplicationGrpcClient.cs
  • src/EventStore.Core/Services/Replication/TransactionFramer.cs
  • src/EventStore.Core/Services/RequestForwarding/GrpcRequestForwardingSupervisor.cs
  • src/EventStore.Core/Services/RequestForwardingService.cs
  • src/EventStore.Core/Services/Storage/ReaderIndex/EventFilter.cs
  • src/EventStore.Core/Services/SubscriptionsService.cs
  • src/EventStore.Core/Services/TcpSendService.cs
  • src/EventStore.Core/Services/Transport/Grpc/Forwarding/ForwardingGrpcCodec.cs
  • src/EventStore.Core/Services/Transport/Grpc/Forwarding/ForwardingService.cs
  • src/EventStore.Core/Services/Transport/Grpc/Monitoring.cs
  • src/EventStore.Core/Services/Transport/Tcp/ClientTcpDispatcher.cs
  • src/EventStore.Core/Services/Transport/Tcp/ClientWriteTcpDispatcher.cs
  • src/EventStore.Core/Services/Transport/Tcp/ITcpDispatcher.cs
  • src/EventStore.Core/Services/Transport/Tcp/ProtobufExtensions.cs
  • src/EventStore.Core/Services/Transport/Tcp/SendOverTcpEnvelope.cs
  • src/EventStore.Core/Services/Transport/Tcp/TcpCommand.cs
  • src/EventStore.Core/Services/Transport/Tcp/TcpConnectionManager.cs
  • src/EventStore.Core/Services/Transport/Tcp/TcpDispatcher.cs
  • src/EventStore.Core/Services/Transport/Tcp/TcpPackage.cs
  • src/EventStore.Core/Services/Transport/Tcp/TcpService.cs
  • src/EventStore.Core/Services/Transport/Tcp/UnableToAcquireStreamException.cs
  • src/EventStore.Core/Services/VNode/ClusterVNodeController.cs
  • src/EventStore.Core/Services/VNode/LeaderInfoProvider.cs
  • src/EventStore.Core/Settings/VNodeSettings.cs
  • src/EventStore.Core/Util/Opts.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/Cluster/specification_with_standard_projections_runnning.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/RecordedEventExtensions.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/event_by_type_index.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/event_by_type_index/when_reverting_after_index_catches_up.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/list_projections.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/specification_with_standard_projections_runnning.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_created/with_from_all_any_foreach_projection/when_running_and_events_are_posted.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_created/with_from_all_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_created/with_from_category_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/recovery/when_running_and_a_stream_gets_deleted_before_recovery.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/recovery/when_running_and_events_are_posted.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted_but_a_stream_and_tombstone_postponed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted_but_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted_including_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_then_other_events_tombstone_ant_other_events.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/recovery/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/recovery/when_running_and_events_get_indexed_before_recovery.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed_but_a_stream_and_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed_but_more_events_and_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed_but_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_no_indexing.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_no_indexing_and_other_events.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/recovery/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/recovery/when_running_and_events_get_indexed_before_recovery.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_but_a_stream_and_tombstone_postponed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_but_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_including_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_then_other_events_tombstone_ant_other_events.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/with_standard_projections_running.cs
  • src/EventStore.Projections.Core.Tests/EventStore.Projections.Core.Tests.csproj
  • src/EventStore.Projections.Core.Tests/Playground/Launchpad.cs
  • src/EventStore.Projections.Core.Tests/Playground/Launchpad2.cs
  • src/EventStore.Projections.Core.Tests/Services/SpecificationWithEmittedStreamsTrackerAndDeleter.cs
  • src/EventStore.Projections.Core.Tests/Services/emitted_streams_deleter/when_deleting/with_an_existing_emitted_streams_stream.cs
  • src/EventStore.Projections.Core.Tests/Services/emitted_streams_deleter/when_deleting/with_multiple_tracked_streams.cs
  • src/EventStore.Projections.Core.Tests/Services/emitted_streams_tracker/when_tracking/with_tracking_disabled.cs
  • src/EventStore.Projections.Core.Tests/Services/emitted_streams_tracker/when_tracking/with_tracking_enabled.cs
  • src/EventStore.Projections.Core.Tests/Services/emitted_streams_tracker/when_tracking/with_tracking_enabled_with_duplicate_event_streams.cs
  • src/EventStore.Projections.Core.Tests/Services/event_filter/include_everything_event_filter.cs
  • src/EventStore.Projections.Core.Tests/Services/event_filter/include_everything_handling_deleted_notifications_event_filter.cs
  • src/EventStore.Projections.Core.Tests/Services/grpc_service/SpecificationWithNodeAndProjectionSubsystem.cs
  • src/EventStore.Projections.Core.Tests/Services/projections_manager/when_deleting_a_system_projection.cs
  • src/EventStore.Projections.Core.Tests/Services/projections_system/when_starting_up.cs
  • src/EventStore.Projections.Core/Services/Management/ManagedProjection.cs
  • src/EventStore.Projections.Core/Services/Processing/Emitting/EmittedStreamsDeleter.cs
  • src/EventStore.TestClient.Tests/CommandInventoryTests.cs
  • src/EventStore.TestClient.Tests/EventStore.TestClient.Tests.csproj
  • src/EventStore.TestClient/Client.cs
  • src/EventStore.TestClient/ClientApiLoggerBridge.cs
  • src/EventStore.TestClient/ClientApiTcpCommands/WriteFloodProcessor.cs
  • src/EventStore.TestClient/ClientApiTcpTestClient.cs
  • src/EventStore.TestClient/ClientOptions.cs
  • src/EventStore.TestClient/CommandProcessorContext.cs
  • src/EventStore.TestClient/Commands/DeleteProcessor.cs
  • src/EventStore.TestClient/Commands/DvuBasic/BankAccountBasicProducer.cs
  • src/EventStore.TestClient/Commands/DvuBasic/BankAccountEventFactory.cs
  • src/EventStore.TestClient/Commands/DvuBasic/DvuBasicProcessor.cs
  • src/EventStore.TestClient/Commands/DvuBasic/IBasicProducer.cs
  • src/EventStore.TestClient/Commands/DvuBasic/Status.cs
  • src/EventStore.TestClient/Commands/DvuBasic/StreamNamesGenerator.cs
  • src/EventStore.TestClient/Commands/MultiWriteFloodWaiting.cs
  • src/EventStore.TestClient/Commands/MultiWriteProcessor.cs
  • src/EventStore.TestClient/Commands/PingFloodProcessor.cs
  • src/EventStore.TestClient/Commands/PingFloodWaitingProcessor.cs
  • src/EventStore.TestClient/Commands/PingProcessor.cs
  • src/EventStore.TestClient/Commands/ReadAllProcessor.cs
  • src/EventStore.TestClient/Commands/ReadFloodProcessor.cs
  • src/EventStore.TestClient/Commands/ReadProcessor.cs
  • src/EventStore.TestClient/Commands/RequestMonitor.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/BankAccountEvent.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/IScenario.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/JsonEventContainer.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/LoopingProjTranWriteScenario.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/LoopingProjectionKillScenario.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/LoopingScenario.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/MassProjectionsScenario.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/NodeConnectionInfo.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/ProjForeachForcedCommonNameScenario.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/ProjectionWrongTagCheck.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/ProjectionsKillScenario.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/ProjectionsScenarioBase.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/ScenarioBase.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/TestEvent.cs
  • src/EventStore.TestClient/Commands/RunTestScenarios/WriteMode.cs
  • src/EventStore.TestClient/Commands/RunTestScenariosProcessor.cs
  • src/EventStore.TestClient/Commands/ScavengeProcessor.cs
  • src/EventStore.TestClient/Commands/SubscribeToStreamProcessor.cs
  • src/EventStore.TestClient/Commands/SubscriptionStressTestProcessor.cs
  • src/EventStore.TestClient/Commands/TcpSanitazationCheckProcessor.cs
  • src/EventStore.TestClient/Commands/TestClientJson.cs
  • src/EventStore.TestClient/Commands/TransactionWriteProcessor.cs
  • src/EventStore.TestClient/Commands/WriteFloodClientApiProcessor.cs
  • src/EventStore.TestClient/Commands/WriteFloodProcessor.cs
  • src/EventStore.TestClient/Commands/WriteFloodWaitingProcessor.cs
  • src/EventStore.TestClient/Commands/WriteJsonProcessor.cs
  • src/EventStore.TestClient/Commands/WriteLongTermProcessor.cs
  • src/EventStore.TestClient/Commands/WriteProcessor.cs
  • src/EventStore.TestClient/ConsoleTable.cs
  • src/EventStore.TestClient/EventStore.TestClient.csproj
  • src/EventStore.TestClient/GrpcCommands/CompatibilityProcessors.cs
  • src/EventStore.TestClient/GrpcTestClient.cs
  • src/EventStore.TestClient/PortsHelper.cs
  • src/EventStore.TestClient/Program.cs
  • src/EventStore.TestClient/TcpTestClient.cs
  • src/EventStore.Transport.Tcp/EventStore.Transport.Tcp.csproj
  • src/EventStore.Transport.Tcp/Formatting/FormatterBase.cs
  • src/EventStore.Transport.Tcp/Formatting/IMessageFormatter.cs
  • src/EventStore.Transport.Tcp/Formatting/RawMessageFormatter.cs
  • src/EventStore.Transport.Tcp/Framing/IMessageFramer.cs
  • src/EventStore.Transport.Tcp/Framing/LengthPrefixMessageFramer.cs
  • src/EventStore.Transport.Tcp/Framing/LengthPrefixMessageFramerWithBufferPool.cs
  • src/EventStore.Transport.Tcp/Framing/PackageFramingException.cs
  • src/EventStore.Transport.Tcp/Helper.cs
  • src/EventStore.Transport.Tcp/IMonitoredTcpConnection.cs
  • src/EventStore.Transport.Tcp/ITcpConnection.cs
  • src/EventStore.Transport.Tcp/SocketArgsPool.cs
  • src/EventStore.Transport.Tcp/TcpClientConnector.cs
  • src/EventStore.Transport.Tcp/TcpConfiguration.cs
  • src/EventStore.Transport.Tcp/TcpConnection.cs
  • src/EventStore.Transport.Tcp/TcpConnectionBase.cs
  • src/EventStore.Transport.Tcp/TcpConnectionMonitor.cs
  • src/EventStore.Transport.Tcp/TcpConnectionSsl.cs
  • src/EventStore.Transport.Tcp/TcpServerListener.cs
  • src/EventStore.Transport.Tcp/TcpStats.cs
  • src/EventStore.Transport.Tcp/TcpTypedConnection.cs
  • src/EventStore.sln
  • src/Protos/ClientAPI/ClientMessageDtos.proto
  • src/Protos/Grpc/cluster.proto
  • src/Protos/Grpc/forwarding.proto
  • src/Protos/Grpc/monitoring.proto

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


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.

@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/chore-remove-legacy-tcp branch from eb05632 to 324b4ad Compare September 12, 2026 09:24
@yordis yordis changed the title chore(transport): keep one supported network boundary fix(transport): preserve behavior across the gRPC boundary Sep 12, 2026

@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.

Comment thread src/EventStore.ClusterNode/Components/Pages/Observability.razor
@yordis
yordis force-pushed the yordis/chore-remove-legacy-tcp branch from 324b4ad to feac45f Compare September 12, 2026 09:35
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis
yordis force-pushed the yordis/chore-remove-legacy-tcp branch from feac45f to cdbee49 Compare September 12, 2026 18:35

@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.

Comment thread docker-compose.yml

@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 890816d. Configure here.

Comment thread docker-compose.yml
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis
yordis force-pushed the yordis/chore-remove-legacy-tcp branch from 890816d to 7d172a1 Compare September 12, 2026 19:19
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis

yordis commented Sep 12, 2026

Copy link
Copy Markdown
Member Author

Superseded by the reviewable stack from #487 through #499. The replacement keeps each behavior change independently buildable and below the automated review size limit.

@yordis yordis closed this Sep 12, 2026
@yordis
yordis deleted the yordis/chore-remove-legacy-tcp branch September 12, 2026 23:32
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