This is an automated email from the ASF dual-hosted git repository.
numinnex pushed a change to branch retry_primary_write_on_to
in repository https://gitbox.apache.org/repos/asf/iggy.git
from 147c36796 Merge branch 'master' into retry_primary_write_on_to
add 789dfe6b5 feat(server): expose per-topic size and message count on
/metrics (#4480)
add c748fe201 feat(swift): add the VSR protocol layer with request and
reply codecs (#4355)
add fa86c2998 feat(cli): support IGGY_TOKEN environment variable (#4478)
add fe5612964 perf(connectors): stop cloning JSON leaves when the caller
already owns them (#4399)
add 69ab058ca fix(sdk): drop the oldest diagnostic event instead of
blocking (#4501)
add 4ac7ee87a feat(cluster): add three-node Docker Compose cluster (#4499)
add b9bb99719 ci: add job timeouts and stagger the stale-PR cron (#4466)
add a89b26a4a feat(ci): close PRs that skip the issue-first step (#4403)
add c03409660 fix(bench): pace warmup and rewind consumers (#4314)
add 1e1278299 fix(partitions): fence install backup on writeback failure
(#4278)
add edb418bbe perf(gateways): give each Kafka producer its own Iggy client
(#4502)
add b669d9669 fix(gateways): stop reporting cleanup.policy and accept -1
defaults (#4534)
add b815165c3 fix(ci): use an approved setup-uv revision (#4540)
add b90afc2ac chore(deps): Bump the csharp group with 4 updates (#4536)
add c5152a500 feat(server)!: route partition requests to their primaries
(#4506)
new bdae18d15 Merge branch 'master' into retry_primary_write_on_to
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.claude/skills/connector-sdk/SKILL.md | 4 +-
.../actions/python-maturin/pre-merge/action.yml | 2 +-
.github/workflows/_common.yml | 15 +
.github/workflows/_detect.yml | 1 +
.github/workflows/post-merge.yml | 1 +
.github/workflows/pr-title.yml | 1 +
.github/workflows/pr-triage-apply.yml | 278 +-
.github/workflows/pre-merge.yml | 1 +
.github/workflows/stale-prs.yml | 3 +-
AGENTS.md | 6 +-
bdd/go/tests/tcp_test/messages_feature_send.go | 4 +-
bdd/go/tests/tcp_test/offset_feature_delete.go | 2 +-
bdd/rust/tests/steps/leader_redirection.rs | 3 +-
.../src/actors/consumer/benchmark_consumer.rs | 146 +-
.../bench/src/actors/consumer/client/high_level.rs | 84 +-
core/bench/src/actors/consumer/client/interface.rs | 4 +
core/bench/src/actors/consumer/client/low_level.rs | 60 +
.../src/actors/producer/benchmark_producer.rs | 15 +-
.../benchmark_producing_consumer.rs | 38 +-
core/bench/src/analytics/report_builder.rs | 13 +-
core/bench/src/args/common.rs | 6 +-
core/bench/src/utils/rate_limiter.rs | 261 +-
core/binary_protocol/src/codes.rs | 6 +-
core/binary_protocol/src/consensus/command.rs | 11 +-
core/binary_protocol/src/consensus/header.rs | 426 +-
core/binary_protocol/src/consensus/mod.rs | 7 +-
core/binary_protocol/src/consensus/request.rs | 19 +-
core/binary_protocol/src/dispatch.rs | 4 +-
core/binary_protocol/src/lib.rs | 20 +-
core/binary_protocol/src/primitives/identifier.rs | 3 +
.../src/primitives/partition_history.rs | 7 +-
...{get_send_context.rs => get_partition_route.rs} | 22 +-
core/binary_protocol/src/requests/messages/mod.rs | 4 +-
.../partitions/retire_consumer_group_owners.rs | 8 +-
core/binary_protocol/src/responses/messages/mod.rs | 2 +
.../src/responses/messages/partition_route.rs | 157 +
.../src/responses/messages/poll_routing.rs | 1 +
.../src/responses/system/get_cluster_metadata.rs | 45 +-
core/cli/src/args/mod.rs | 21 +-
.../binary_cluster/get_cluster_metadata.rs | 7 +-
core/cli/src/credentials.rs | 13 +
core/common/src/error/iggy_error.rs | 81 +-
core/common/src/lib.rs | 4 +-
core/common/src/traits/binary_impls/messages.rs | 19 +-
core/common/src/traits/binary_impls/mod.rs | 58 +-
.../traits/binary_impls/personal_access_tokens.rs | 39 +-
core/common/src/traits/binary_impls/users.rs | 39 +-
core/common/src/traits/binary_transport.rs | 71 +-
core/common/src/traits/client.rs | 39 +
core/common/src/traits/mod.rs | 2 +-
core/common/src/types/cluster/node.rs | 8 +-
core/common/src/utils/topic_size.rs | 32 +
core/common/src/wire_conversions.rs | 20 +
core/configs/src/configs_impl/file_provider.rs | 7 +
core/configs/src/server_config/cluster.rs | 11 +-
core/configs/src/server_config/server.rs | 1 +
core/connectors/sdk/src/convert.rs | 128 +-
core/connectors/sdk/src/encoders/avro.rs | 4 +-
core/connectors/sdk/src/lib.rs | 2 +-
core/connectors/sinks/delta_sink/src/sink.rs | 42 +-
core/connectors/sinks/http_sink/src/lib.rs | 58 +-
core/connectors/sinks/meilisearch_sink/src/lib.rs | 28 +-
core/connectors/sinks/s3_sink/src/formatter.rs | 95 +-
core/connectors/sinks/s3_sink/src/sink.rs | 158 +-
core/connectors/sinks/surrealdb_sink/src/lib.rs | 15 +-
core/consensus/src/client_table.rs | 15 +-
core/consensus/src/impls.rs | 232 +-
core/consensus/src/lib.rs | 7 +
core/consensus/src/plane_helpers.rs | 285 +-
core/integration/tests/bench.rs | 190 +
core/integration/tests/cli/common/mod.rs | 11 +
.../tests/cli/general/test_help_command.rs | 17 +-
.../cli/system/test_cluster_metadata_command.rs | 4 +-
.../tests/cli/user/test_login_options.rs | 208 +-
.../tests/cluster/client_table_adversarial.rs | 1 +
.../tests/cluster/client_table_restart.rs | 1 +
core/integration/tests/cluster/partition_dedup.rs | 1 +
.../tests/cluster/partition_primary_routing.rs | 570 +-
.../tests/cluster/partition_state_transfer.rs | 100 +-
.../verify_consumer_group_partition_assignment.rs | 89 +-
.../tests/sdk/consumer_group_membership.rs | 15 +-
core/integration/tests/server/http_client.rs | 17 +
.../tests/server/http_read_your_writes.rs | 19 +-
core/integration/tests/server/http_vsr.rs | 82 +-
core/integration/tests/server/mod.rs | 5 +-
.../tests/server/pipelined_frames_vsr.rs | 303 +
core/integration/tests/server/raw_tcp.rs | 7 +
.../server/scenarios/authentication_scenario.rs | 6 +-
core/integration/tests/server/topic_metrics_vsr.rs | 178 +-
core/journal/src/lib.rs | 13 +-
core/journal/src/prepare_journal.rs | 75 +-
core/message_bus/src/config.rs | 21 +-
core/message_bus/src/lib.rs | 27 +
core/message_bus/src/transports/mod.rs | 8 +-
core/message_bus/src/transports/quic.rs | 860 +-
core/metadata/src/impls/metadata.rs | 293 +-
core/metadata/src/stm/consumer_group.rs | 346 +-
core/metadata/src/stm/lifecycle.rs | 389 +-
core/metadata/src/stm/mod.rs | 80 +-
core/metadata/src/stm/result.rs | 153 +-
core/metadata/src/stm/snapshot.rs | 28 +-
core/metadata/src/stm/stream.rs | 141 +-
core/partitions/Cargo.toml | 2 +-
core/partitions/src/consumer_offset_capacity.rs | 14 +
core/partitions/src/iggy_index_writer.rs | 13 +-
core/partitions/src/iggy_partition.rs | 11751 ++++++++++++-------
core/partitions/src/install_backup.rs | 84 +-
core/partitions/src/io.rs | 144 +-
core/partitions/src/journal.rs | 63 +-
core/partitions/src/lib.rs | 11 +-
core/partitions/src/log.rs | 7 +-
core/partitions/src/messages_writer.rs | 13 +-
core/partitions/src/offset_recovery.rs | 62 +-
core/partitions/src/offset_storage.rs | 31 +
core/partitions/src/partition_storage.rs | 104 +-
core/partitions/src/persistence.rs | 67 +-
core/partitions/src/segment_recovery.rs | 3 +-
core/partitions/src/state_transfer.rs | 187 +-
core/partitions/src/types.rs | 10 +-
core/sdk/src/client_wrappers/binary_client.rs | 21 +
core/sdk/src/clients/client.rs | 110 +-
core/sdk/src/clients/consumer.rs | 1 +
core/sdk/src/clients/producer.rs | 10 +-
core/sdk/src/diagnostic_events.rs | 54 +
core/sdk/src/driver.rs | 1325 +++
.../src/{poll_routing.rs => driver/poll_router.rs} | 185 +-
core/sdk/src/driver/route_cache.rs | 381 +
core/sdk/src/http/http_client.rs | 8 +-
core/sdk/src/leader_aware.rs | 611 +-
core/sdk/src/lib.rs | 5 +-
core/sdk/src/{leader_aware.rs => links/connect.rs} | 524 +-
core/sdk/src/links/dial.rs | 324 +
core/sdk/src/links/fake_cluster.rs | 442 +
core/sdk/src/links/mod.rs | 448 +
core/sdk/src/links/mux.rs | 815 ++
core/sdk/src/links/quic.rs | 335 +
core/sdk/src/links/replicas.rs | 1571 +++
core/sdk/src/quic/quic_client.rs | 643 +-
core/sdk/src/session.rs | 16 +-
core/sdk/src/session_owner.rs | 601 +
core/sdk/src/session_owner/lanes.rs | 606 +
core/sdk/src/tcp/mod.rs | 4 -
core/sdk/src/tcp/tcp_client.rs | 1366 ++-
core/sdk/src/tcp/tcp_connection_stream.rs | 108 -
core/sdk/src/tcp/tcp_connection_stream_kind.rs | 66 -
core/sdk/src/tcp/tcp_stream.rs | 27 -
core/sdk/src/tcp/tcp_tls_connection_stream.rs | 105 -
core/sdk/src/vsr.rs | 396 +-
core/sdk/src/websocket/mod.rs | 4 -
core/sdk/src/websocket/websocket_client.rs | 764 +-
.../src/websocket/websocket_connection_stream.rs | 212 -
core/sdk/src/websocket/websocket_stream.rs | 36 -
core/sdk/src/websocket/websocket_stream_kind.rs | 58 -
.../websocket/websocket_tls_connection_stream.rs | 217 -
core/server/README.md | 22 +-
core/server/config.toml | 37 +-
core/server/src/boot/mod.rs | 61 +-
core/server/src/boot/topology.rs | 12 +-
core/server/src/cluster_meta.rs | 39 +
core/server/src/consumer_group.rs | 9 +-
core/server/src/consumer_group/liveness.rs | 10 +-
core/server/src/dispatch/authz.rs | 10 +-
core/server/src/dispatch/failure.rs | 73 +-
core/server/src/dispatch/host.rs | 40 +-
core/server/src/dispatch/mod.rs | 1482 ++-
core/server/src/dispatch/partition.rs | 866 +-
core/server/src/dispatch/reads.rs | 93 +-
core/server/src/dispatch/submit.rs | 1386 ++-
core/server/src/dispatch/test_support.rs | 91 +-
core/server/src/http.rs | 38 +-
core/server/src/http/error.rs | 17 +-
core/server/src/http/forward.rs | 965 +-
core/server/src/http/handlers.rs | 363 +-
core/server/src/http/metrics.rs | 210 +-
core/server/src/http/reply.rs | 8 +
core/server/src/http/state.rs | 7 +
core/server/src/http/submit.rs | 98 +-
core/server/src/lib.rs | 8 +-
core/server/src/namespace.rs | 34 +-
core/server/src/partition_helpers.rs | 5 +-
core/server/src/partition_reconciler.rs | 702 +-
core/server/src/reply_frame.rs | 12 +-
core/server/src/rewrite.rs | 42 +-
core/server/src/segment_cleaner.rs | 41 +-
core/server_common/src/consensus_message.rs | 16 +-
core/shard/src/coordinator.rs | 5 +
core/shard/src/lib.rs | 1224 +-
core/shard/src/partition_io.rs | 2694 ++++-
core/shard/src/poll.rs | 87 +-
core/shard/src/poll/completion_tests.rs | 229 +-
core/simulator/src/bin/workload-fuzz.rs | 64 +-
core/simulator/src/client.rs | 27 +-
core/simulator/src/deps.rs | 21 +-
core/simulator/src/lib.rs | 2468 +++-
core/simulator/src/packet.rs | 3 +-
core/simulator/src/replica.rs | 6 +-
core/simulator/src/storage/tests.rs | 209 +-
core/simulator/src/workload/actions.rs | 4 +
core/simulator/src/workload/auditor.rs | 18 +-
core/simulator/src/workload/invariants.rs | 30 +-
core/simulator/src/workload/mod.rs | 2481 +++-
.../src/workload/ops/join_fixture_group.rs | 96 +
...pdate_permissions.rs => leave_fixture_group.rs} | 50 +-
core/simulator/src/workload/ops/mod.rs | 12 +-
.../src/workload/ops/replace_fixture_topic.rs | 112 +
..._permissions.rs => store_stale_owner_offset.rs} | 66 +-
core/simulator/src/workload/options.rs | 53 +-
core/simulator/src/workload/oracle.rs | 384 +-
core/simulator/src/workload/shadow.rs | 550 +-
core/simulator/src/workload/state_checker.rs | 568 +-
docker-compose.cluster.yml | 191 +
foreign/cpp/src/lib.rs | 1 +
foreign/cpp/src/type_conversion.rs | 1 +
foreign/csharp/Directory.Packages.props | 8 +-
foreign/csharp/Iggy_SDK/Contracts/ClusterNode.cs | 3 +
.../SdkVersion.cs => Contracts/PartitionRoute.cs} | 13 +-
.../Exceptions/IggyInvalidStatusCodeException.cs | 2 +
.../TcpMessageStream.PollRouting.cs | 423 +-
.../Implementations/TcpMessageStream.Vsr.cs | 51 +-
.../IggyClient/Implementations/TcpMessageStream.cs | 101 +-
foreign/csharp/Iggy_SDK/Mappers/BinaryMapper.cs | 21 +-
foreign/csharp/Iggy_SDK/Utils/CommandCodes.cs | 2 +-
foreign/csharp/Iggy_SDK/Vsr/VsrConnection.cs | 8 +-
foreign/csharp/Iggy_SDK/Vsr/VsrError.cs | 1 +
foreign/csharp/Iggy_SDK/Vsr/VsrHeader.cs | 4 +-
foreign/csharp/Iggy_SDK/Vsr/VsrOperation.cs | 2 +-
.../ConsumerTests/OffsetContinuationTests.cs | 9 +-
.../Iggy_SDK_Tests/MapperTests/BinaryMapper.cs | 59 +-
.../VsrTests/EndpointFailoverTests.cs | 21 +-
.../Iggy_SDK_Tests/VsrTests/GroupPollingTests.cs | 1 +
foreign/csharp/Iggy_SDK_Tests/VsrTests/MockNode.cs | 41 +-
.../VsrTests/PartitionContextTests.cs | 54 +-
.../Iggy_SDK_Tests/VsrTests/PrimaryPollingTests.cs | 456 +-
foreign/go/README.md | 2 +-
foreign/go/client/tcp/cluster.go | 12 +
foreign/go/client/tcp/tcp_core.go | 73 +-
foreign/go/client/tcp/tcp_core_review_test.go | 2 +-
foreign/go/client/tcp/tcp_core_test.go | 35 +-
foreign/go/client/tcp/tcp_failover_test.go | 4 +-
foreign/go/client/tcp/tcp_messaging.go | 174 +-
foreign/go/client/tcp/tcp_offset_management.go | 27 +-
foreign/go/client/tcp/tcp_partition_management.go | 3 +
foreign/go/client/tcp/tcp_poll_routing.go | 248 +-
foreign/go/client/tcp/tcp_poll_routing_test.go | 498 +-
foreign/go/client/tcp/tcp_stream_management.go | 1 +
foreign/go/client/tcp/tcp_testing_test.go | 19 +-
foreign/go/client/tcp/tcp_topic_cache.go | 44 +-
foreign/go/client/tcp/tcp_topic_cache_test.go | 71 +-
foreign/go/contracts/cluster_metadata_test.go | 56 +-
foreign/go/contracts/cluster_node.go | 10 +-
foreign/go/contracts/partitions.go | 26 +
foreign/go/errors/errors.yaml | 4 +
foreign/go/errors/errors_gen.go | 15 +
foreign/go/internal/command/code.go | 2 +-
foreign/go/internal/vsr/envelope.go | 5 +
foreign/go/internal/vsr/envelope_test.go | 4 +-
foreign/go/internal/vsr/session.go | 46 +-
foreign/go/internal/vsr/session_test.go | 40 +-
foreign/go/tests/e2e_test.go | 29 +-
.../iggy/client/async/tcp/AsyncIggyTcpClient.java | 69 +-
.../iggy/client/async/tcp/AsyncTcpConnection.java | 137 +-
.../iggy/client/async/tcp/ClientRoutingState.java | 36 +-
.../client/async/tcp/ConsumerOffsetsTcpClient.java | 49 +-
.../iggy/client/async/tcp/MessagesTcpClient.java | 146 +-
.../iggy/client/async/tcp/PartitionContexts.java | 191 -
.../apache/iggy/client/async/tcp/PollRouter.java | 429 +-
.../client/async/tcp/RawPartitionRequests.java | 12 +-
.../client/async/tcp/vsr/ConsensusSession.java | 21 +-
.../iggy/client/async/tcp/vsr/VsrHeaders.java | 2 +-
.../client/async/tcp/vsr/VsrRequestEncoder.java | 13 +-
.../java/org/apache/iggy/cluster/ClusterNode.java | 14 +-
.../org/apache/iggy/exception/IggyErrorCode.java | 1 +
.../org/apache/iggy/partition/PartitionRoute.java | 47 +
.../org/apache/iggy/serde/BytesDeserializer.java | 5 +-
.../java/org/apache/iggy/serde/CommandCode.java | 2 +-
.../AsyncIggyTcpClientEndpointFailoverTest.java | 1 +
.../AsyncIggyTcpClientPartitionContextTest.java | 141 +-
.../tcp/AsyncIggyTcpClientRawRequestTest.java | 192 +-
.../AsyncIggyTcpClientSendContextCacheTest.java | 99 +-
.../AsyncIggyTcpClientTransientFailoverTest.java | 128 +-
.../tcp/AsyncTcpConnectionLifecycleBusyTest.java | 52 +-
.../client/async/tcp/ClientRoutingStateTest.java | 40 -
.../iggy/client/async/tcp/LeaderAwarenessTest.java | 2 +-
.../iggy/client/async/tcp/PollRouterTest.java | 102 +-
.../async/tcp/vsr/VsrRequestEncoderTest.java | 35 +-
.../client/blocking/http/ObjectMapperTest.java | 19 +
.../apache/iggy/partition/PartitionRouteTest.java | 65 +
.../apache/iggy/serde/BytesDeserializerTest.java | 3 +
foreign/node/src/client/client.socket.test.ts | 521 +-
foreign/node/src/client/client.socket.ts | 461 +-
foreign/node/src/e2e/tcp.cluster.e2e.ts | 1 +
foreign/node/src/wire/cluster/cluster.utils.ts | 6 +-
foreign/node/src/wire/command.code.ts | 2 +-
foreign/node/src/wire/error.code.ts | 1 +
.../src/wire/message/send-messages.command.test.ts | 52 +-
.../node/src/wire/message/send-messages.command.ts | 56 +-
foreign/node/src/wire/offset/get-offset.command.ts | 2 +-
foreign/node/src/wire/offset/offset.utils.ts | 12 +-
.../src/wire/partition/partition-route.test.ts | 46 +
foreign/node/src/wire/partition/partition-route.ts | 51 +
foreign/node/src/wire/vsr/index.ts | 2 +-
foreign/node/src/wire/vsr/session.ts | 5 +-
foreign/node/src/wire/vsr/vsr.test.ts | 4 +-
foreign/swift/README.md | 13 +-
.../swift/Sources/Iggy/Errors/IggyErrorCode.swift | 8 +
.../Sources/Iggy/Models/ResourceOptions.swift | 12 -
foreign/swift/Sources/Iggy/Models/Resources.swift | 4 +-
foreign/swift/Sources/Iggy/Protocol/Batch.swift | 264 +
.../swift/Sources/Iggy/Protocol/CommandCode.swift | 143 +
.../Sources/Iggy/Protocol/ConsensusOperation.swift | 154 +
.../Sources/Iggy/Protocol/ConsensusSession.swift | 89 +
.../Sources/Iggy/Protocol/ProtocolVersion.swift | 46 +
foreign/swift/Sources/Iggy/Protocol/Requests.swift | 348 +
.../swift/Sources/Iggy/Protocol/Responses.swift | 460 +
foreign/swift/Sources/Iggy/Protocol/VSRFrame.swift | 313 +
foreign/swift/Sources/Iggy/Wire/ByteCodec.swift | 63 +-
foreign/swift/Tests/IggyTests/Fixtures/golden.json | 9 +-
foreign/swift/Tests/IggyTests/ModelTests.swift | 8 +-
foreign/swift/Tests/IggyTests/ProtocolTests.swift | 310 +
.../Tests/IggyTests/ResponseVectorTests.swift | 324 +
.../Tests/IggyTests/Support/GoldenFixture.swift | 4 +
.../swift/Tests/IggyTests/WireVectorTests.swift | 290 +
foreign/swift/Tools/golden-vectors/src/main.rs | 13 +
gateways/kafka/README.md | 65 +-
gateways/kafka/docs/CONFIGS.md | 31 +-
gateways/kafka/docs/IDEMPOTENCE.md | 37 +-
gateways/kafka/docs/MANUAL_TESTING.md | 4 +-
gateways/kafka/docs/SCOPE.md | 11 +-
gateways/kafka/src/bridge/config.rs | 88 +-
gateways/kafka/src/bridge/iggy_bridge/fetch.rs | 34 +-
.../kafka/src/bridge/iggy_bridge/group_offsets.rs | 18 +-
gateways/kafka/src/bridge/iggy_bridge/mod.rs | 103 +-
gateways/kafka/src/bridge/iggy_bridge/produce.rs | 819 +-
gateways/kafka/src/bridge/mod.rs | 6 +-
gateways/kafka/src/main.rs | 43 +-
gateways/kafka/src/protocol/api.rs | 52 +-
.../kafka/src/protocol/handlers/create_topics.rs | 125 +-
.../src/protocol/handlers/describe_configs.rs | 42 +-
.../src/protocol/handlers/init_producer_id.rs | 46 +-
gateways/kafka/src/protocol/handlers/mod.rs | 2 +-
gateways/kafka/src/protocol/handlers/produce.rs | 482 +-
.../kafka/src/protocol/handlers/topic_config.rs | 55 +-
gateways/kafka/src/records.rs | 149 +-
gateways/kafka/src/server.rs | 33 +-
.../kafka/tests/bridge_iggy_integration_tests.rs | 6 +-
gateways/kafka/tests/common/iggy_server.rs | 21 +-
gateways/kafka/tests/configs_java_client_tests.rs | 5 +-
gateways/kafka/tests/configs_real_bridge_tests.rs | 18 +-
.../kafka/tests/create_topics_real_bridge_tests.rs | 45 +
gateways/kafka/tests/java/ConfigsProbe.java | 17 +-
gateways/kafka/tests/kafka_client_e2e_tests.rs | 3 +-
gateways/kafka/tests/produce_real_bridge_tests.rs | 190 +-
gateways/kafka/tests/response_negative_tests.rs | 11 +-
353 files changed, 48592 insertions(+), 13754 deletions(-)
rename core/binary_protocol/src/requests/messages/{get_send_context.rs =>
get_partition_route.rs} (77%)
create mode 100644
core/binary_protocol/src/responses/messages/partition_route.rs
create mode 100644 core/integration/tests/server/pipelined_frames_vsr.rs
create mode 100644 core/sdk/src/diagnostic_events.rs
create mode 100644 core/sdk/src/driver.rs
rename core/sdk/src/{poll_routing.rs => driver/poll_router.rs} (91%)
create mode 100644 core/sdk/src/driver/route_cache.rs
copy core/sdk/src/{leader_aware.rs => links/connect.rs} (54%)
create mode 100644 core/sdk/src/links/dial.rs
create mode 100644 core/sdk/src/links/fake_cluster.rs
create mode 100644 core/sdk/src/links/mod.rs
create mode 100644 core/sdk/src/links/mux.rs
create mode 100644 core/sdk/src/links/quic.rs
create mode 100644 core/sdk/src/links/replicas.rs
create mode 100644 core/sdk/src/session_owner.rs
create mode 100644 core/sdk/src/session_owner/lanes.rs
delete mode 100644 core/sdk/src/tcp/tcp_connection_stream.rs
delete mode 100644 core/sdk/src/tcp/tcp_connection_stream_kind.rs
delete mode 100644 core/sdk/src/tcp/tcp_stream.rs
delete mode 100644 core/sdk/src/tcp/tcp_tls_connection_stream.rs
delete mode 100644 core/sdk/src/websocket/websocket_connection_stream.rs
delete mode 100644 core/sdk/src/websocket/websocket_stream.rs
delete mode 100644 core/sdk/src/websocket/websocket_stream_kind.rs
delete mode 100644 core/sdk/src/websocket/websocket_tls_connection_stream.rs
create mode 100644 core/simulator/src/workload/ops/join_fixture_group.rs
copy core/simulator/src/workload/ops/{update_permissions.rs =>
leave_fixture_group.rs} (55%)
create mode 100644 core/simulator/src/workload/ops/replace_fixture_topic.rs
copy core/simulator/src/workload/ops/{update_permissions.rs =>
store_stale_owner_offset.rs} (50%)
create mode 100644 docker-compose.cluster.yml
copy foreign/csharp/Iggy_SDK/{Utils/SdkVersion.cs =>
Contracts/PartitionRoute.cs} (73%)
delete mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/PartitionContexts.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/partition/PartitionRoute.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/partition/PartitionRouteTest.java
create mode 100644 foreign/node/src/wire/partition/partition-route.test.ts
create mode 100644 foreign/node/src/wire/partition/partition-route.ts
create mode 100644 foreign/swift/Sources/Iggy/Protocol/Batch.swift
create mode 100644 foreign/swift/Sources/Iggy/Protocol/CommandCode.swift
create mode 100644 foreign/swift/Sources/Iggy/Protocol/ConsensusOperation.swift
create mode 100644 foreign/swift/Sources/Iggy/Protocol/ConsensusSession.swift
create mode 100644 foreign/swift/Sources/Iggy/Protocol/ProtocolVersion.swift
create mode 100644 foreign/swift/Sources/Iggy/Protocol/Requests.swift
create mode 100644 foreign/swift/Sources/Iggy/Protocol/Responses.swift
create mode 100644 foreign/swift/Sources/Iggy/Protocol/VSRFrame.swift
create mode 100644 foreign/swift/Tests/IggyTests/ProtocolTests.swift
create mode 100644 foreign/swift/Tests/IggyTests/ResponseVectorTests.swift
create mode 100644 foreign/swift/Tests/IggyTests/WireVectorTests.swift