You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iggy.apache.org by gk...@apache.org on 2026/10/23 07:34:47 UTC
(iggy) branch fix_journal_panic updated (ffa219580 -> 3e21168d6)
This is an automated email from the ASF dual-hosted git repository.
numinnex pushed a change to branch fix_journal_panic
in repository https://gitbox.apache.org/repos/asf/iggy.git
from ffa219580 address review
add e9e5e10a3 chore(deps): upgrade Rust dependencies (#4542)
add f0d10d46b feat(swift): add the TCP and TLS client (#4503)
add b1166a590 fix(sdk): stop a reconnect sweep when the client shuts down (#4507)
add e06fb351d fix(csharp): report refusal when routed budget expires before resend (#4547)
add c70c286cd chore(deps): Bump the github-actions group with 2 updates (#4549)
add 12f05b848 chore(deps): Bump the python group across 3 directories with 1 update (#4551)
add ec985b7e0 perf(ci): avoid redundant Rust coverage builds (#4546)
add 5992f416a chore(deps): Bump the java group across 3 directories with 10 updates (#4548)
add 12cc1f3cf feat(java): parse iggy:// connection strings in TcpClientBuilder (#4504)
add fe3b4269e fix(java): decouple wrapper JAR fetch from the Gradle version (#4564)
add 2a5c25e89 feat(swift): send and poll messages, consumer groups, and offsets (#4553)
add 4c53f2a3b fix(ci,php): survive the zip crate mass yank (#4574)
add 8200eca06 chore(deps): Bump the web group across 1 directory with 7 updates (#4567)
add b76fa267b chore(deps): Bump the node group across 2 directories with 4 updates (#4568)
add e86560106 chore(deps): Bump rules_cc from 0.2.25 to 0.2.26 in /foreign/cpp in the cpp group across 1 directory (#4566)
add c95797383 perf(ci): share covered runtimes across test jobs (#4560)
add e9096ed00 feat(gateways): add TLS listeners and mTLS client identities to Kafka gateway (#4535)
add 29365392f fix(server)!: derive session timeout from heartbeat.interval (#4562)
add 83b3664a1 fix(server)!: bind grants and HTTP tokens to the objects they name (#4550)
add d1fe677db chore(csharp): remove FluentAssertions from tests (#4578)
add d201cdc95 feat(gateways): answer Kafka ListOffsets by timestamp and MAX_TIMESTAMP (#4545)
add 9d384d638 test(cluster): port the chaos harness scenarios into the chaos monkey (#4557)
add 7a15a0d6d test(gateways): cover Kafka produce and consume over SASL through the bridge (#4539)
add 28bef8f23 feat(connectors): add MQTT source connector (#4303)
add 5d02e19eb chore(deps): Bump the csharp group with 6 updates (#4586)
add c37a94daf feat(sdk)!: activate partition routing and recovery (#4561)
add c5709f520 chore(rust): bump toolchain to 1.99.1 (#4591)
add cd5f531a9 feat(python): return identity details from password and PAT login (#4276)
add 49a831f38 fix(server)!: drop generated root passwords, journal root, gate snapshots (#4585)
add 64ce664bf feat(gateways): auto-create Kafka topics on first use (#4582)
add c729a0e34 chore(ci): group Dependabot security updates per ecosystem (#4541)
add d9c8a50d2 fix(connectors): exclude key and version from connector env mappings (#4486)
add e7bd30d0b ci: scope .config/** to the Rust test lanes instead of rust-workspace (#4556)
add 8b3b54c55 fix(sdk): support IPv6 addresses in connection strings (#4579)
add 0d4fa738a feat(cli): display topic partitions and options in topic get (#4558)
add fcf110f41 feat(gateways): report a stable Kafka cluster id and serve DescribeCluster (#4583)
add 3a8e85990 feat(gateways): serve Kafka CreatePartitions through the Iggy bridge (#4565)
add 5906e2db7 fix(cli): print errors and their causes instead of Debug value (#4590)
add 67e3a3c78 feat(gateways): serve Kafka IncrementalAlterConfigs (key 44) (#4572)
add bb4765dbb feat(ci): publish Kafka gateway image to Docker Hub (#4593)
add 48f34fd62 fix(ci): reduce runner usage and simplify workflows (#4594)
add b8b37da5a feat(gateways): honour Kafka static group membership (#4575)
add 717719c8e feat(gateways): serve DeleteGroups and OffsetDelete, report Empty groups (#4559)
add 786382afe feat(cluster)!: spread and rebalance partition primaries (#4619)
add b0a951ea8 feat(server)!: unify resource options and add per-stream keys (#4615)
add 3e21168d6 merge master
No new revisions were added by this update.
Summary of changes:
.config/nextest.toml | 6 +-
.devcontainer/Dockerfile | 2 +-
.dockerignore | 14 +
.github/actions/bdd/pre-merge/action.yml | 108 +
.github/actions/cpp-bazel/pre-merge/action.yml | 50 +-
.github/actions/csharp-dotnet/pre-merge/action.yml | 9 +-
.github/actions/go/pre-merge/action.yml | 53 +-
.github/actions/java-gradle/post-merge/action.yml | 4 +-
.github/actions/java-gradle/pre-merge/action.yml | 16 +-
.github/actions/node-npm/pre-merge/action.yml | 41 +-
.github/actions/php/pre-merge/action.yml | 29 +-
.../actions/python-maturin/pre-merge/action.yml | 94 +-
.github/actions/rust/post-merge/action.yml | 4 +-
.github/actions/rust/pre-merge/action.yml | 317 +-
.github/actions/swift/pre-merge/action.yml | 188 +-
.github/actions/utils/docker-buildx/action.yml | 1 -
.github/actions/utils/download-runtime/action.yml | 59 +
.github/actions/utils/server-start/action.yml | 71 +-
.../{setup-cpp-with-cache => setup-cpp}/action.yml | 9 +-
.../{setup-go-with-cache => setup-go}/action.yml | 4 +-
.../action.yml | 2 +-
.../action.yml | 29 +-
.../action.yml | 86 +-
.../utils/validate-third-party-licenses/action.yml | 9 +-
.github/config/components.yml | 16 +-
.github/config/edge-image-variants.json | 22 +
.github/config/publish.yml | 9 +
.github/dependabot.yml | 40 +
.github/workflows/_build_ci_artifacts.yml | 69 +
.github/workflows/_build_python_wheels.yml | 12 +-
.github/workflows/_build_rust_artifacts.yml | 9 +-
.github/workflows/_common.yml | 29 +-
.github/workflows/_detect.yml | 40 +-
.github/workflows/_publish_rust_crates.yml | 4 +-
.github/workflows/_rust.yml | 89 +
.github/workflows/_rust_tests.yml | 90 +
.github/workflows/_test.yml | 190 +-
.github/workflows/_test_bdd.yml | 90 +-
.github/workflows/_test_examples.yml | 148 +-
.github/workflows/coverage-baseline.yml | 314 +-
.github/workflows/issue-labeler-assigner.yml | 2 +-
.github/workflows/post-merge.yml | 47 +-
.github/workflows/pr-skill-review-run.yml | 2 +
.github/workflows/pr-title.yml | 2 +-
.github/workflows/pr-triage-apply.yml | 2 +-
.github/workflows/pr-triage-collect.yml | 2 +-
.github/workflows/pre-merge.yml | 344 +-
.github/workflows/publish.yml | 127 +-
.github/workflows/stale-prs-unmark-on-activity.yml | 2 +-
.github/workflows/stale-prs-unmark.yml | 2 +-
.gitignore | 2 +
.typos.toml | 5 +
AGENTS.md | 4 +-
Cargo.lock | 2655 ++++----
Cargo.toml | 119 +-
Dockerfile | 2 +-
README.md | 16 +-
bdd/README.md | 5 +-
.../features/step_definitions/background_steps.cpp | 21 +-
.../features/step_definitions/messaging_steps.cpp | 13 +-
.../step_definitions/raw_command_steps.cpp | 3 +-
.../step_definitions/resource_options_steps.cpp | 475 ++
.../step_definitions/session_contract_steps.cpp | 93 +
bdd/cpp/features/step_definitions/world.hpp | 21 +
bdd/cpp/scripts/entrypoint.sh | 3 +
bdd/docker-compose.cluster.yml | 8 +-
bdd/docker-compose.coverage.yml | 27 +-
bdd/docker-compose.no-quorum.yml | 134 +
bdd/docker-compose.server.yml | 5 +
bdd/docker-compose.yml | 51 +-
bdd/go/go.mod | 1 -
bdd/go/go.sum | 2 -
bdd/go/tests/basic_messaging.go | 8 +-
bdd/go/tests/env/env.go | 5 +
bdd/go/tests/leader_redirection.go | 2 +-
bdd/go/tests/resource_options.go | 607 ++
bdd/go/tests/session_contract.go | 139 +
bdd/go/tests/suite_test.go | 34 +
bdd/go/tests/tcp_test/stream_feature_create.go | 10 +-
bdd/go/tests/tcp_test/stream_feature_get_by_id.go | 20 +-
bdd/go/tests/tcp_test/stream_feature_update.go | 13 +-
bdd/go/tests/tcp_test/stream_steps.go | 2 +-
bdd/go/tests/tcp_test/topic_feature_create.go | 37 +-
bdd/go/tests/tcp_test/topic_feature_update.go | 37 +-
bdd/go/tests/tcp_test/topic_steps.go | 7 +-
bdd/go/tests/tcp_test/users_feature_create.go | 6 +-
bdd/go/tests/tcp_test/users_feature_password.go | 2 +-
bdd/go/tests/tcp_test/users_feature_permissions.go | 3 +-
bdd/go/tests/tcp_test/users_feature_update.go | 6 +-
bdd/go/tests/tcp_test/users_steps.go | 2 +-
bdd/java/build.gradle.kts | 8 +-
bdd/java/gradle/wrapper/gradle-wrapper.properties | 2 +-
bdd/java/gradlew | 87 +-
.../org/apache/iggy/bdd/BasicMessagingSteps.java | 63 +-
.../org/apache/iggy/bdd/ResourceOptionsSteps.java | 415 ++
.../test/java/org/apache/iggy/bdd/TestContext.java | 1 +
.../java/org/apache/iggy/bdd/TestEnvironment.java | 4 +
bdd/node/Dockerfile | 3 +
bdd/php/Dockerfile | 4 +-
...tureTest.php => SessionContractFeatureTest.php} | 67 +-
bdd/php/tests/SharedFeatureParser.php | 26 +-
.../php/tests/SharedFeatureParserTest.php | 30 +-
bdd/php/tests/StreamOptionsFeatureTest.php | 249 +
bdd/php/tests/TestEnvironment.php | 5 +
bdd/python/Dockerfile | 2 +-
bdd/python/tests/conftest.py | 31 +-
bdd/python/tests/test_basic_messaging.py | 6 +-
bdd/python/tests/test_resource_options_patch.py | 248 +
...est_raw_command.py => test_session_contract.py} | 79 +-
bdd/python/tests/test_stream_options.py | 331 +
bdd/python/uv.lock | 40 +-
bdd/rust/Cargo.toml | 15 +
bdd/rust/Dockerfile | 42 +-
bdd/rust/tests/common/global_context.rs | 7 +-
bdd/rust/tests/helpers/env.rs | 4 +
...asic_messaging.rs => resource_options_patch.rs} | 2 +-
.../{basic_messaging.rs => session_contract.rs} | 2 +-
bdd/rust/tests/steps/leader_redirection.rs | 2 +-
bdd/rust/tests/steps/mod.rs | 2 +
bdd/rust/tests/steps/resource_options.rs | 509 ++
bdd/rust/tests/steps/session.rs | 65 +
bdd/rust/tests/steps/streams.rs | 9 +-
.../tests/{stream_crud.rs => stream_options.rs} | 2 +-
bdd/scenarios/resource_options_patch.feature | 55 +
...aw_command.feature => session_contract.feature} | 31 +-
bdd/scenarios/stream_options.feature | 74 +
codecov.yml | 3 +
core/ai/mcp/Cargo.toml | 2 +-
core/ai/mcp/Dockerfile | 2 +-
core/ai/mcp/README.md | 14 +
core/ai/mcp/src/main.rs | 11 +
core/ai/mcp/src/service/mod.rs | 318 +-
core/ai/mcp/src/service/requests.rs | 100 +-
core/bench/Cargo.toml | 2 +-
core/bench/dashboard/server/Dockerfile | 2 +-
core/bench/dashboard/server/src/github/client.rs | 2 +-
.../actors/producer/typed_benchmark_producer.rs | 2 +-
.../typed_benchmark_producing_consumer.rs | 2 +-
core/bench/src/benchmarks/benchmark.rs | 4 +-
core/binary_protocol/Cargo.toml | 3 +-
core/binary_protocol/src/codes.rs | 22 +-
core/binary_protocol/src/consensus/command.rs | 10 +-
core/binary_protocol/src/consensus/header.rs | 122 +-
core/binary_protocol/src/consensus/mod.rs | 4 +
core/binary_protocol/src/consensus/operation.rs | 79 +-
.../src/consensus/primary_rebalance.rs | 375 ++
core/binary_protocol/src/consensus/reply_result.rs | 37 +-
core/binary_protocol/src/consensus/request.rs | 29 +-
.../src/consensus/segment_delete.rs | 193 +
core/binary_protocol/src/dispatch.rs | 135 +-
core/binary_protocol/src/error.rs | 3 +
core/binary_protocol/src/lib.rs | 9 +-
core/binary_protocol/src/primitives/consumer.rs | 32 +-
core/binary_protocol/src/primitives/identifier.rs | 87 +-
core/binary_protocol/src/primitives/options.rs | 25 +-
.../src/primitives/partition_assignment.rs | 24 +-
.../src/requests/messages/poll_messages.rs | 114 +
.../create_partitions_with_assignments.rs | 114 +-
core/binary_protocol/src/requests/streams/mod.rs | 9 +-
.../src/requests/streams/rewrap_stream_keys.rs | 216 +
.../src/requests/streams/update_stream.rs | 127 -
.../src/requests/streams/update_stream_resolved.rs | 114 +
core/binary_protocol/src/requests/system/mod.rs | 2 +
.../src/requests/system/update_resource.rs | 476 ++
.../topics/create_topic_with_assignments.rs | 95 +-
core/binary_protocol/src/requests/topics/mod.rs | 4 +-
.../src/requests/topics/update_topic.rs | 158 -
.../src/requests/topics/update_topic_resolved.rs | 113 +
.../src/requests/users/login_register.rs | 58 +-
core/binary_protocol/src/requests/users/mod.rs | 4 +-
.../src/requests/users/update_user.rs | 228 -
.../src/requests/users/update_user_resolved.rs | 136 +
core/binary_protocol/src/responses/messages/mod.rs | 2 -
.../src/responses/messages/poll_routing.rs | 104 -
.../src/responses/streams/get_stream.rs | 34 +-
.../src/responses/streams/get_streams.rs | 2 +
core/binary_protocol/src/responses/streams/mod.rs | 2 -
.../src/responses/streams/stream_response.rs | 20 +-
.../src/responses/streams/update_stream.rs | 19 -
.../src/responses/system/describe_options.rs | 28 +-
core/binary_protocol/src/responses/system/mod.rs | 2 +
.../src/responses/system/update_resource.rs} | 3 +-
.../src/responses/topics/get_topic.rs | 3 -
.../src/responses/topics/get_topics.rs | 3 -
core/binary_protocol/src/responses/topics/mod.rs | 2 -
.../src/responses/topics/update_topic.rs | 19 -
.../src/responses/users/get_user.rs | 1 +
.../src/responses/users/get_users.rs | 2 +
core/binary_protocol/src/responses/users/mod.rs | 2 -
.../src/responses/users/update_user.rs | 18 -
.../src/responses/users/user_response.rs | 20 +-
core/binary_protocol/src/version.rs | 26 +-
core/cli/Cargo.toml | 2 +-
core/cli/src/args/common.rs | 20 +
core/cli/src/args/mod.rs | 8 +-
core/cli/src/args/stream.rs | 84 +-
core/cli/src/args/topic.rs | 101 +-
.../src/commands/binary_streams/create_stream.rs | 64 +-
core/cli/src/commands/binary_streams/get_stream.rs | 35 +
.../cli/src/commands/binary_streams/get_streams.rs | 15 +-
.../src/commands/binary_streams/update_stream.rs | 69 +-
core/cli/src/commands/binary_system/options.rs | 56 +-
.../cli/src/commands/binary_topics/create_topic.rs | 83 +-
core/cli/src/commands/binary_topics/get_topic.rs | 296 +-
core/cli/src/commands/binary_topics/get_topics.rs | 14 +-
.../cli/src/commands/binary_topics/update_topic.rs | 101 +-
core/cli/src/commands/binary_users/create_user.rs | 6 +-
core/cli/src/commands/binary_users/update_user.rs | 46 +-
core/cli/src/main.rs | 32 +-
core/common/Cargo.toml | 11 +-
core/common/benches/stream_encryption.rs | 103 +
core/common/examples/resource_options_fixtures.rs | 953 +++
.../examples/resource_options_fixtures/schema.rs | 990 +++
core/common/fixtures/resource_options.json | 1619 +++++
core/common/src/consumer_group_client_state.rs | 198 +-
core/common/src/error/iggy_error.rs | 88 +-
core/common/src/http/mod.rs | 1 +
core/common/src/http/options.rs | 706 +++
core/common/src/http/streams/create_stream.rs | 7 +
core/common/src/http/streams/mod.rs | 1 -
core/common/src/http/streams/update_stream.rs | 60 -
core/common/src/http/topics/create_topic.rs | 35 +-
core/common/src/http/topics/mod.rs | 1 -
core/common/src/http/topics/update_topic.rs | 86 -
core/common/src/http/users/create_user.rs | 5 +
core/common/src/http/users/mod.rs | 1 -
core/common/src/http/users/update_user.rs | 59 -
core/common/src/lib.rs | 16 +-
core/common/src/traits/binary_impls/messages.rs | 506 +-
core/common/src/traits/binary_impls/mod.rs | 79 +-
core/common/src/traits/binary_impls/partitions.rs | 2 -
.../traits/binary_impls/personal_access_tokens.rs | 36 +-
core/common/src/traits/binary_impls/streams.rs | 38 +-
core/common/src/traits/binary_impls/topics.rs | 33 +-
core/common/src/traits/binary_impls/users.rs | 247 +-
core/common/src/traits/binary_transport.rs | 484 +-
core/common/src/traits/client.rs | 51 +-
core/common/src/traits/message_client.rs | 4 +-
core/common/src/traits/mod.rs | 4 +-
.../src/traits/personal_access_token_client.rs | 4 +
core/common/src/traits/stream_client.rs | 18 +-
core/common/src/traits/topic_client.rs | 5 +-
core/common/src/traits/user_client.rs | 20 +-
.../configuration/auth_config/connection_string.rs | 169 +-
core/common/src/types/configuration/mod.rs | 1 +
.../configuration/pending_operations_config.rs | 145 +
.../quic_config/quic_client_config.rs | 6 +-
.../quic_config/quic_client_config_builder.rs | 14 +-
.../quic_config/quic_client_reconnection_config.rs | 10 +-
.../quic_config/quic_connection_string_options.rs | 23 +-
.../configuration/tcp_config/tcp_client_config.rs | 6 +-
.../tcp_config/tcp_client_config_builder.rs | 14 +-
.../tcp_config/tcp_client_reconnection_config.rs | 46 +-
.../tcp_config/tcp_connection_string_options.rs | 23 +-
.../websocket_config/websocket_client_config.rs | 8 +-
.../websocket_client_config_builder.rs | 14 +-
.../websocket_client_reconnection_config.rs | 18 +-
.../websocket_connection_string_options.rs | 18 +-
core/common/src/types/identifier/mod.rs | 72 +-
core/common/src/types/options/catalog.rs | 1798 ++++++
core/common/src/types/options/codec.rs | 273 +
core/common/src/types/options/key.rs | 83 +
core/common/src/types/options/mod.rs | 1633 +++--
.../src/types/permissions/permissions_global.rs | 6 +-
.../common/src/types/personal_access_tokens/mod.rs | 49 +-
core/common/src/types/segment.rs | 14 +-
core/common/src/types/stream/mod.rs | 73 +-
core/common/src/types/topic/mod.rs | 52 +-
core/common/src/utils/crypto.rs | 147 +-
core/common/src/utils/mod.rs | 1 +
core/common/src/utils/stream_key.rs | 1436 +++++
core/common/src/wire_conversions.rs | 130 +-
core/common/tests/resource_options_fixtures.rs | 776 +++
core/common/tests/stream_key_erasure.rs | 277 +
core/configs/src/common/defaults.rs | 7 +-
core/configs/src/common/displays.rs | 25 +-
core/configs/src/common/http.rs | 3 +-
core/configs/src/common/server.rs | 22 +-
core/configs/src/common/system.rs | 64 +-
core/configs/src/common/validators.rs | 116 +-
core/configs/src/configs_impl/file_provider.rs | 17 +
.../configs/src/configs_impl/typed_env_provider.rs | 33 +-
core/configs/src/server_config/cluster.rs | 65 +-
core/configs/src/server_config/defaults.rs | 2 +
core/configs/src/server_config/displays.rs | 7 +-
core/configs/src/server_config/message_bus.rs | 69 +
core/configs/src/server_config/metadata.rs | 5 +-
core/configs/src/server_config/server.rs | 8 +
core/configs/src/server_config/validators.rs | 90 +-
core/connectors/runtime/Cargo.toml | 2 +-
core/connectors/runtime/Dockerfile | 2 +-
.../example_config/connectors/mqtt_source.toml | 73 +
core/connectors/runtime/src/configs/connectors.rs | 26 +
.../src/configs/connectors/local_provider.rs | 74 +
core/connectors/runtime/src/main.rs | 1 -
core/connectors/runtime/src/manager/source.rs | 3 +-
core/connectors/runtime/src/source.rs | 404 +-
core/connectors/sdk/README.md | 2 +
core/connectors/sinks/rabbitmq_sink/src/lib.rs | 42 +-
core/connectors/sources/README.md | 1 +
.../mqtt_source}/Cargo.toml | 21 +-
core/connectors/sources/mqtt_source/README.md | 429 ++
core/connectors/sources/mqtt_source/config.toml | 70 +
core/connectors/sources/mqtt_source/src/driver.rs | 1687 +++++
core/connectors/sources/mqtt_source/src/lib.rs | 1449 +++++
core/consensus/src/client_table.rs | 228 +-
core/consensus/src/dvc_merge.rs | 65 +-
core/consensus/src/impls.rs | 2289 ++++++-
core/consensus/src/lib.rs | 2 +-
core/consensus/src/metadata_helpers.rs | 167 +-
core/consensus/src/observability.rs | 22 +-
core/consensus/src/plane_helpers.rs | 522 +-
core/consensus/src/view_change_quorum.rs | 3 +-
core/consensus/src/vsr_state.rs | 638 +-
core/integration/Cargo.toml | 5 +
core/integration/src/harness/config/jwks.rs | 4 +
core/integration/src/harness/config/mod.rs | 2 +-
core/integration/src/harness/config/server.rs | 2 +
core/integration/src/harness/disk.rs | 214 +-
core/integration/src/harness/handle/common.rs | 66 +-
.../src/harness/handle/connectors_runtime.rs | 2 +-
core/integration/src/harness/handle/mcp.rs | 6 +-
core/integration/src/harness/handle/mod.rs | 2 +-
core/integration/src/harness/handle/server.rs | 120 +-
core/integration/src/harness/helpers.rs | 77 +-
core/integration/src/harness/mod.rs | 8 +-
.../src/harness/orchestrator/builder.rs | 86 +-
.../src/harness/orchestrator/harness.rs | 136 +-
core/integration/src/harness/peer_relay.rs | 356 ++
core/integration/src/harness/seeds.rs | 30 +-
core/integration/tests/cli/common/mod.rs | 19 +
.../test_consumer_group_create_command.rs | 5 +-
.../test_consumer_group_delete_command.rs | 5 +-
.../test_consumer_group_get_command.rs | 5 +-
.../test_consumer_group_list_command.rs | 3 +-
.../test_consumer_offset_external_group_command.rs | 5 +-
.../test_consumer_offset_get_command.rs | 2 +-
.../test_consumer_offset_set_command.rs | 4 +-
.../tests/cli/general/test_help_command.rs | 2 +-
.../tests/cli/general/test_missing_credentials.rs | 4 +-
.../tests/cli/general/test_overview_command.rs | 2 +-
.../tests/cli/message/test_message_poll_command.rs | 4 +-
.../message/test_message_poll_to_file_command.rs | 4 +-
.../tests/cli/message/test_message_send_command.rs | 26 +-
.../message/test_message_send_from_file_command.rs | 2 +-
.../cli/partition/test_partition_create_command.rs | 5 +-
.../cli/partition/test_partition_delete_command.rs | 5 +-
.../tests/cli/stream/test_stream_create_command.rs | 213 +-
.../tests/cli/stream/test_stream_delete_command.rs | 5 +-
.../tests/cli/stream/test_stream_get_command.rs | 77 +-
.../tests/cli/stream/test_stream_help_command.rs | 2 +-
.../tests/cli/stream/test_stream_list_command.rs | 11 +-
.../tests/cli/stream/test_stream_update_command.rs | 57 +-
.../tests/cli/system/test_me_command.rs | 4 +-
.../tests/cli/system/test_stats_command.rs | 9 +-
.../tests/cli/topic/test_topic_create_command.rs | 7 +-
.../tests/cli/topic/test_topic_delete_command.rs | 5 +-
.../tests/cli/topic/test_topic_get_command.rs | 375 +-
.../tests/cli/topic/test_topic_help_command.rs | 2 +-
.../tests/cli/topic/test_topic_list_command.rs | 5 +-
.../tests/cli/topic/test_topic_update_command.rs | 313 +-
core/integration/tests/cli/user/common.rs | 42 +-
.../tests/cli/user/test_user_create_command.rs | 6 +-
.../tests/cli/user/test_user_delete_command.rs | 9 +-
.../tests/cli/user/test_user_get_command.rs | 4 +
.../tests/cli/user/test_user_list_command.rs | 9 +-
.../tests/cli/user/test_user_name_command.rs | 9 +-
.../tests/cli/user/test_user_password_command.rs | 9 +-
.../cli/user/test_user_permissions_command.rs | 12 +-
.../tests/cli/user/test_user_status_command.rs | 9 +-
core/integration/tests/cluster/chaos_monkey.rs | 2445 ++++++--
.../tests/cluster/client_table_adversarial.rs | 2 +-
.../tests/cluster/client_table_restart.rs | 430 +-
.../tests/cluster/consumer_offset_quota.rs | 2 +-
core/integration/tests/cluster/crash_durability.rs | 17 +-
.../tests/cluster/crash_offset_reuse.rs | 2 +-
.../tests/cluster/crash_recovery_corruption.rs | 191 +-
.../tests/cluster/failover_client_continuity.rs | 64 +-
.../tests/cluster/fast_primary_rejoin.rs | 30 +-
.../tests/cluster/metadata_checkpoint_restart.rs | 2 +-
core/integration/tests/cluster/mod.rs | 3 +
.../cluster/multi_shard_partition_convergence.rs | 10 +-
.../tests/cluster/parked_frame_redispatch.rs | 26 +-
core/integration/tests/cluster/partition_dedup.rs | 160 +-
.../tests/cluster/partition_primary_routing.rs | 2323 ++++++-
.../tests/cluster/partition_state_transfer.rs | 2 +-
.../tests/cluster/register_forwarding.rs | 2 +-
.../tests/cluster/replica_read_batching.rs | 5 +-
core/integration/tests/cluster/root_credentials.rs | 112 +
.../tests/cluster/staggered_bootstrap.rs | 15 +-
.../integration/tests/cluster/stream_encryption.rs | 451 ++
.../tests/cluster/stream_key_rotation.rs | 485 ++
core/integration/tests/connectors/fixtures/mod.rs | 6 +
.../tests/connectors/fixtures/mqtt/container.rs | 267 +
.../tests/connectors/fixtures/mqtt/mod.rs | 404 ++
.../tests/connectors/fixtures/mqtt/publisher.rs | 443 ++
.../connectors/fixtures/rabbitmq/container.rs | 14 +-
.../fixtures/redshift/redshift_mock/handler.rs | 4 +-
.../fixtures/redshift/redshift_mock/parser.rs | 8 +-
core/integration/tests/connectors/mod.rs | 1 +
.../tests/connectors/{s3 => mqtt}/mod.rs | 2 +-
.../tests/connectors/mqtt/mqtt_source.rs | 741 +++
.../{doris/sink.toml => mqtt/source.toml} | 2 +-
core/integration/tests/connectors/s3/s3_sink.rs | 1 +
.../tests/data_integrity/storage_compat.rs | 32 +-
.../data_integrity/verify_after_server_restart.rs | 28 +-
.../verify_auto_commit_offset_replicates.rs | 5 +-
.../verify_cluster_replica_data_identical.rs | 165 +-
.../verify_consumer_group_partition_assignment.rs | 182 +-
.../verify_no_plaintext_credentials_on_disk.rs | 93 +-
core/integration/tests/mcp/mod.rs | 57 +-
core/integration/tests/sdk/consumer_group.rs | 15 +-
.../tests/sdk/consumer_group_membership.rs | 37 +-
core/integration/tests/sdk/consumer_offset.rs | 15 +-
core/integration/tests/sdk/consumer_shutdown.rs | 5 +-
core/integration/tests/sdk/options.rs | 397 +-
core/integration/tests/sdk/producer/mod.rs | 5 +-
core/integration/tests/sdk/send_confirmation.rs | 2 +-
core/integration/tests/server/a2a_jwt/config.toml | 2 +-
core/integration/tests/server/a2a_jwt/jwt_tests.rs | 143 +-
core/integration/tests/server/cg.rs | 11 +-
.../tests/server/cluster_view_durability_vsr.rs | 2 +-
.../tests/server/consumer_offset_quota_vsr.rs | 8 +-
.../tests/server/descriptor_exhaustion_vsr.rs | 2 +-
core/integration/tests/server/general.rs | 6 +
core/integration/tests/server/http_client.rs | 11 +
core/integration/tests/server/http_rbac.rs | 199 +-
.../tests/server/http_read_your_writes.rs | 2 +-
core/integration/tests/server/http_vsr.rs | 265 +-
.../tests/server/partition_view_durability_vsr.rs | 2 +-
.../tests/server/partitions_limit_vsr.rs | 2 +-
.../server/personal_access_token_cleaner_vsr.rs | 15 +-
.../tests/server/pipelined_frames_vsr.rs | 5 +-
.../integration/tests/server/poll_semantics_vsr.rs | 10 +-
.../server/scenarios/authentication_scenario.rs | 77 +-
.../concurrent_produce_consume_scenario.rs | 5 +-
.../tests/server/scenarios/concurrent_scenario.rs | 36 +-
...umer_group_auto_commit_reconnection_scenario.rs | 5 +-
...onsumer_group_duplicate_name_create_scenario.rs | 6 +-
.../scenarios/consumer_group_join_scenario.rs | 6 +-
...er_group_new_messages_after_restart_scenario.rs | 5 +-
.../consumer_group_offset_cleanup_scenario.rs | 5 +-
...h_multiple_clients_polling_messages_scenario.rs | 5 +-
...with_single_client_polling_messages_scenario.rs | 5 +-
.../consumer_timestamp_polling_scenario.rs | 5 +-
.../server/scenarios/delete_segments_scenario.rs | 20 +-
.../scenarios/delete_stats_rollback_scenario.rs | 10 +-
.../tests/server/scenarios/encryption_scenario.rs | 598 +-
.../scenarios/external_group_offsets_scenario.rs | 6 +-
.../scenarios/invalid_consumer_offset_scenario.rs | 5 +-
.../server/scenarios/log_rotation_scenario.rs | 7 +-
.../server/scenarios/message_cleanup_scenario.rs | 37 +-
.../server/scenarios/message_headers_scenario.rs | 5 +-
.../server/scenarios/message_size_scenario.rs | 5 +-
.../tests/server/scenarios/offset_scenario.rs | 5 +-
.../tests/server/scenarios/permissions_scenario.rs | 264 +-
.../scenarios/read_during_persistence_scenario.rs | 5 +-
.../scenarios/reconnect_after_restart_scenario.rs | 22 +-
.../scenarios/restart_offset_skip_scenario.rs | 5 +-
.../scenarios/segment_rotation_race_scenario.rs | 13 +-
.../scenarios/single_message_per_batch_scenario.rs | 5 +-
.../stale_client_consumer_group_scenario.rs | 143 +-
.../scenarios/stream_size_validation_scenario.rs | 5 +-
.../tests/server/scenarios/system_scenario.rs | 57 +-
.../tests/server/scenarios/tcp_tls_scenario.rs | 5 +-
.../tests/server/scenarios/timestamp_scenario.rs | 5 +-
.../tests/server/scenarios/user_scenario.rs | 26 +-
.../server/scenarios/websocket_tls_scenario.rs | 5 +-
.../tests/server/shared_jwt_secrets.toml | 8 +-
.../tests/server/topic_admission_vsr.rs | 38 +-
core/integration/tests/server/topic_metrics_vsr.rs | 11 +-
core/integration/tests/server/unknown_code_vsr.rs | 22 +-
core/journal/src/prepare_journal.rs | 231 +-
core/journal/src/superblock.rs | 49 +-
core/message_bus/src/config.rs | 5 +
core/message_bus/src/error.rs | 34 +-
core/message_bus/src/installer/mod.rs | 55 +-
core/message_bus/src/installer/quic.rs | 8 +-
core/message_bus/src/installer/tcp.rs | 14 +-
core/message_bus/src/installer/ws.rs | 11 +-
core/message_bus/src/lib.rs | 382 +-
.../src/lifecycle/connection_registry.rs | 368 +-
core/message_bus/src/transports/mod.rs | 2 +-
core/message_bus/src/transports/quic.rs | 229 +-
core/message_bus/tests/duplicate_client_id.rs | 51 +
core/message_bus/tests/quic_client_roundtrip.rs | 18 +-
core/message_bus/tests/tcp_client_roundtrip.rs | 258 +-
core/message_bus/tests/tcp_tls_client_listener.rs | 20 +-
core/message_bus/tests/tcp_tls_client_roundtrip.rs | 15 +-
core/message_bus/tests/ws_client_roundtrip.rs | 25 +-
core/message_bus/tests/wss_client_listener.rs | 15 +-
core/message_bus/tests/wss_client_roundtrip.rs | 15 +-
core/metadata/src/applied_frontier.rs | 132 +-
core/metadata/src/impls/metadata.rs | 5719 ++++++++++++++---
core/metadata/src/impls/mod.rs | 1 +
core/metadata/src/impls/placement.rs | 949 +++
core/metadata/src/impls/recovery.rs | 1048 +++-
.../src/permissioner/permissioner_rules/system.rs | 75 +-
core/metadata/src/stm/authz.rs | 585 +-
core/metadata/src/stm/consumer_group.rs | 4 +-
core/metadata/src/stm/lifecycle.rs | 74 +-
core/metadata/src/stm/mod.rs | 2 +
core/metadata/src/stm/result.rs | 87 +-
core/metadata/src/stm/snapshot.rs | 87 +-
core/metadata/src/stm/stream.rs | 1577 ++++-
core/metadata/src/stm/user.rs | 757 ++-
core/partitions/src/iggy_partition.rs | 1985 +++++-
core/partitions/src/iggy_partitions.rs | 168 +-
core/partitions/src/io.rs | 27 +-
core/partitions/src/lib.rs | 17 +-
core/partitions/src/persistence.rs | 47 +-
core/partitions/src/poll_plan.rs | 17 +-
core/partitions/src/segment.rs | 10 +-
core/partitions/src/segment_recovery.rs | 102 +-
core/partitions/src/state_transfer.rs | 12 +-
core/partitions/src/stream_keyring.rs | 178 +
core/partitions/src/types.rs | 25 +-
core/partitions/src/wal_storage.rs | 442 ++
core/partitions/tests/consumer_offset_history.rs | 6 +-
core/sdk/Cargo.toml | 3 +-
core/sdk/README.md | 114 +-
core/sdk/src/binary/mod.rs | 241 +
core/sdk/src/client_provider.rs | 3 +
core/sdk/src/client_wrappers/binary_client.rs | 17 -
.../src/client_wrappers/binary_stream_client.rs | 34 +-
.../sdk/src/client_wrappers/binary_topic_client.rs | 29 +-
core/sdk/src/client_wrappers/binary_user_client.rs | 35 +-
core/sdk/src/client_wrappers/client_wrapper.rs | 95 +
core/sdk/src/client_wrappers/connection_info.rs | 6 +-
core/sdk/src/clients/binary_cluster.rs | 2 +-
core/sdk/src/clients/binary_consumer_group.rs | 38 +-
core/sdk/src/clients/binary_consumer_offset.rs | 24 +-
core/sdk/src/clients/binary_message.rs | 39 +-
core/sdk/src/clients/binary_partitions.rs | 12 +-
.../src/clients/binary_personal_access_tokens.rs | 54 +-
core/sdk/src/clients/binary_segments.rs | 6 +-
core/sdk/src/clients/binary_streams.rs | 23 +-
core/sdk/src/clients/binary_system.rs | 18 +-
core/sdk/src/clients/binary_topics.rs | 27 +-
core/sdk/src/clients/binary_users.rs | 76 +-
core/sdk/src/clients/client.rs | 273 +-
core/sdk/src/clients/client_builder.rs | 22 +-
core/sdk/src/clients/consumer.rs | 1555 ++++-
core/sdk/src/clients/mod.rs | 48 +-
core/sdk/src/clients/producer.rs | 1549 +++--
core/sdk/src/clients/producer_builder.rs | 22 +-
core/sdk/src/clients/producer_config.rs | 2 +-
core/sdk/src/clients/producer_dispatcher.rs | 15 +-
core/sdk/src/clients/producer_error_callback.rs | 6 +
core/sdk/src/clients/producer_sharding.rs | 26 +-
core/sdk/src/consumer_ext/consumer_message_ext.rs | 45 +-
core/sdk/src/driver.rs | 2560 +++++++-
core/sdk/src/driver/poll_router.rs | 1572 -----
core/sdk/src/driver/route_cache.rs | 326 +-
core/sdk/src/http/http_client.rs | 161 +-
core/sdk/src/http/messages.rs | 21 +-
core/sdk/src/http/scripted_server.rs | 31 +-
core/sdk/src/http/streams.rs | 22 +-
core/sdk/src/http/topics.rs | 29 +-
core/sdk/src/http/users.rs | 19 +-
core/sdk/src/leader_aware.rs | 518 --
core/sdk/src/lib.rs | 1 -
core/sdk/src/links/connect.rs | 254 +-
core/sdk/src/links/dial.rs | 180 +-
core/sdk/src/links/fake_cluster.rs | 269 +-
core/sdk/src/links/mod.rs | 139 +-
core/sdk/src/links/mux.rs | 172 +-
core/sdk/src/links/quic.rs | 48 +-
core/sdk/src/links/replicas.rs | 866 ++-
core/sdk/src/prelude.rs | 24 +-
core/sdk/src/quic/quic_client.rs | 1955 +-----
core/sdk/src/session.rs | 19 +
core/sdk/src/session_owner.rs | 317 +-
core/sdk/src/session_owner/lanes.rs | 736 ++-
core/sdk/src/session_owner/pending.rs | 151 +
.../stream_builder/build/build_iggy_producer.rs | 3 -
.../src/stream_builder/build/build_stream_topic.rs | 7 +-
.../stream_builder/config/config_iggy_producer.rs | 42 +-
core/sdk/src/tcp/tcp_client.rs | 4698 ++++----------
core/sdk/src/vsr.rs | 599 +-
core/sdk/src/websocket/websocket_client.rs | 2319 +------
core/server/Cargo.toml | 6 +-
core/server/Dockerfile | 2 +-
core/server/README.md | 298 +-
core/server/config.toml | 132 +-
core/server/src/args.rs | 16 +-
core/server/src/boot/credentials.rs | 523 +-
core/server/src/boot/handoff.rs | 3 +
core/server/src/boot/listeners.rs | 30 +-
core/server/src/boot/mod.rs | 114 +-
core/server/src/boot/recovery.rs | 477 +-
core/server/src/boot/threads.rs | 4 +-
core/server/src/consumer_group.rs | 4 +-
core/server/src/consumer_group/liveness.rs | 166 +-
core/server/src/dispatch/authz.rs | 93 +-
core/server/src/dispatch/failure.rs | 290 +-
core/server/src/dispatch/host.rs | 206 +-
core/server/src/dispatch/mod.rs | 2418 +++++--
core/server/src/dispatch/partition.rs | 2038 ++++--
core/server/src/dispatch/reads.rs | 414 +-
core/server/src/dispatch/segment_delete.rs | 201 +
core/server/src/dispatch/session_ops.rs | 385 +-
core/server/src/dispatch/submit.rs | 24 +-
core/server/src/dispatch/test_support.rs | 302 +-
core/server/src/http.rs | 46 +-
core/server/src/http/admission.rs | 139 +-
core/server/src/http/error.rs | 165 +-
core/server/src/http/extractor.rs | 451 +-
core/server/src/http/forward.rs | 1929 +++++-
core/server/src/http/handlers.rs | 918 +--
core/server/src/http/jwt.rs | 274 +-
core/server/src/http/metrics.rs | 37 +
core/server/src/http/reads.rs | 954 ++-
core/server/src/http/relay_proof.rs | 356 ++
core/server/src/http/reply.rs | 23 +
core/server/src/http/session.rs | 3 +-
core/server/src/http/state.rs | 264 +-
core/server/src/http/submit.rs | 186 +-
core/server/src/lib.rs | 7 +-
core/server/src/main.rs | 21 +-
core/server/src/namespace.rs | 102 +-
core/server/src/partition_helpers.rs | 51 +-
core/server/src/partition_reconciler.rs | 791 ++-
core/server/src/pat.rs | 137 +-
core/server/src/reply_frame.rs | 96 +-
core/server/src/responses.rs | 672 +-
core/server/src/rewrite.rs | 1066 +++-
core/server/src/server_error.rs | 71 +-
core/server/src/session_manager.rs | 199 +-
core/server/src/snapshot.rs | 51 +-
core/server/src/stream_key_rewrapper.rs | 673 ++
core/server/src/stream_keys.rs | 450 ++
core/server/src/users.rs | 281 +-
core/server/src/wire.rs | 23 +-
core/server/tests/sdk_e2e.rs | 507 +-
core/server_common/src/consensus_message.rs | 151 +-
core/shard/Cargo.toml | 1 +
core/shard/src/builder.rs | 39 +-
core/shard/src/coordinator.rs | 2 +-
core/shard/src/lib.rs | 2867 ++++++++-
core/shard/src/metrics.rs | 147 +-
core/shard/src/partition_io.rs | 2877 ++++++++-
core/shard/src/poll.rs | 127 +-
core/shard/src/poll/completion.rs | 8 +-
core/shard/src/poll/completion_tests.rs | 275 +-
core/shard/src/poll/test_support.rs | 2 +-
core/shard/src/poll/timeout_tests.rs | 4 +-
core/shard/src/primary_rebalance.rs | 845 +++
core/shard/src/primary_rebalance/tests.rs | 1191 ++++
core/shard/src/router.rs | 203 +-
core/simulator/Cargo.toml | 2 +-
core/simulator/README.md | 23 +-
core/simulator/src/bin/workload-fuzz.rs | 197 +-
core/simulator/src/bus.rs | 140 +-
core/simulator/src/client.rs | 264 +-
core/simulator/src/deps.rs | 122 +-
core/simulator/src/executor/time.rs | 17 +-
core/simulator/src/lib.rs | 6602 +++++++++++++++++---
core/simulator/src/packet.rs | 33 +-
core/simulator/src/partition_wal.rs | 119 +
core/simulator/src/replica.rs | 163 +-
core/simulator/src/storage/bookmark_recovery.rs | 2 +-
core/simulator/src/workload/actions.rs | 2 +
core/simulator/src/workload/invariants.rs | 57 +-
core/simulator/src/workload/mod.rs | 562 +-
.../{create_stream.rs => create_keyed_stream.rs} | 16 +-
core/simulator/src/workload/ops/create_user.rs | 15 +-
core/simulator/src/workload/ops/mod.rs | 4 +
.../{store_consumer_offset.rs => poll_messages.rs} | 72 +-
.../src/workload/ops/store_stale_owner_offset.rs | 4 +-
.../src/workload/ops/update_permissions.rs | 5 +-
core/simulator/src/workload/ops/update_stream.rs | 2 +-
core/simulator/src/workload/ops/update_topic.rs | 50 +-
core/simulator/src/workload/ops/update_user.rs | 58 +-
core/simulator/src/workload/options.rs | 20 +-
core/simulator/src/workload/oracle.rs | 614 +-
core/simulator/src/workload/readback.rs | 420 ++
core/simulator/src/workload/state_checker.rs | 288 +-
core/simulator/tests/lifecycle_seeds.rs | 127 +
core/system_stats/src/lib.rs | 9 +-
core/tools/src/data-seeder/seeder.rs | 12 +-
docker-compose.yml | 9 +
.../Iggy_SDK.Examples.TcpTls.Producer/Program.cs | 3 +-
examples/go/getting-started/producer/main.go | 9 +-
examples/go/go.mod | 1 -
examples/go/go.sum | 2 -
examples/java/README.md | 2 +-
.../java/gradle/wrapper/gradle-wrapper.properties | 2 +-
examples/java/gradlew | 87 +-
.../apache/iggy/examples/async/AsyncProducer.java | 10 +-
.../producer/GettingStartedProducer.java | 5 +-
.../producer/MessageEnvelopeProducer.java | 5 +-
.../producer/MessageHeadersProducer.java | 6 +-
.../multitenant/producer/MultiTenantProducer.java | 11 +-
.../sinkdataproducer/SinkDataProducer.java | 10 +-
.../iggy/examples/streambuilder/StreamBasic.java | 5 +-
.../examples/tcptls/producer/TcpTlsProducer.java | 5 +-
.../iggy/examples/MultiTenantAccessTest.java | 26 +-
examples/node/README.md | 2 +-
examples/node/package-lock.json | 19 +-
examples/node/package.json | 2 +-
examples/node/src/stream-builder/example.ts | 2 +-
examples/python/README.md | 2 +-
examples/python/basic/producer.py | 6 +-
examples/python/getting-started/producer.py | 6 +-
examples/python/high-level/background_producer.py | 2 -
examples/python/high-level/producer.py | 12 +-
examples/python/message-headers/common.py | 6 +-
examples/python/pyproject.toml | 2 +-
examples/python/uv.lock | 42 +-
examples/rust/README.md | 2 +-
examples/rust/src/getting-started/producer/main.rs | 5 +-
.../message-compression/producer/main.rs | 2 +-
examples/rust/src/multi-tenant/consumer/main.rs | 8 +-
examples/rust/src/multi-tenant/producer/main.rs | 12 +-
examples/rust/src/shared/system.rs | 4 +-
.../stream-builder/stream-producer-config/main.rs | 5 -
examples/rust/src/tcp-tls/producer/main.rs | 5 +-
foreign/cpp/BUILD.bazel | 10 +
foreign/cpp/Cargo.toml | 11 +-
foreign/cpp/MODULE.bazel | 7 +-
foreign/cpp/MODULE.bazel.lock | 6 +-
foreign/cpp/README.md | 114 +
foreign/cpp/include/iggy.hpp | 1089 +++-
foreign/cpp/src/client.cpp | 240 +-
foreign/cpp/src/client.rs | 439 +-
foreign/cpp/src/lib.rs | 199 +-
foreign/cpp/src/type_conversion.rs | 387 +-
foreign/cpp/src/type_conversions.cpp | 48 +-
foreign/cpp/tests/e2e/client.cpp | 561 +-
foreign/cpp/tests/e2e/consumer_group.cpp | 100 +-
foreign/cpp/tests/e2e/message.cpp | 401 +-
foreign/cpp/tests/e2e/resource_options.cpp | 736 +++
foreign/cpp/tests/e2e/stream.cpp | 44 +-
foreign/cpp/tests/e2e/test_helpers.hpp | 52 +-
foreign/cpp/tests/e2e/topic.cpp | 216 +-
foreign/cpp/tests/fixtures/resource_options.json | 1619 +++++
foreign/cpp/tests/unit/resource_options.cpp | 355 ++
foreign/cpp/tests/unit/unit_tests.cpp | 176 +-
foreign/csharp/Benchmarks/Program.cs | 7 +-
foreign/csharp/Directory.Packages.props | 13 +-
.../Iggy_SDK.Tests.BDD/Context/TestContext.cs | 2 +
.../Iggy_SDK.Tests.BDD/Context/TestEnvironment.cs | 1 +
.../csharp/Iggy_SDK.Tests.BDD/Context/TestHooks.cs | 1 +
.../Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj | 13 +
.../StepDefinitions/LeaderRedirectionSteps.cs | 33 +-
.../StepDefinitions/ResourceOptionsSteps.cs | 376 ++
.../StepDefinitions/SessionContractSteps.cs | 89 +
.../csharp/Iggy_SDK.Tests.BDD/xunit.runner.json | 4 +
.../Fixtures/IggyServerFixture.cs | 45 +-
.../Fixtures/VsrCluster.cs | 9 +
.../Iggy_SDK.Tests.Integration/HeartbeatTests.cs | 40 +-
.../Helpers/ConsumerGroupAssignment.cs | 4 +-
.../IggyConsumerTests.cs | 10 +-
.../IggyTlsConnectionTests.cs | 9 +-
.../IggyTypedConsumerTests.cs | 22 +-
.../Iggy_SDK.Tests.Integration/OptionsTests.cs | 313 +-
.../Iggy_SDK.Tests.Integration/StreamsTests.cs | 10 +-
.../Iggy_SDK.Tests.Integration/TopicsTests.cs | 39 +-
.../Iggy_SDK.Tests.Integration/UsersTests.cs | 98 +-
.../Vsr/VsrMetadataTests.cs | 3 +-
.../Iggy_SDK/Configuration/ConnectionString.cs | 25 +-
.../Configuration/IggyClientConfigurator.cs | 34 +-
.../Iggy_SDK/Configuration/ReconnectionSettings.cs | 4 +-
.../csharp/Iggy_SDK/Consumers/AutoCommitMode.cs | 4 +-
.../Iggy_SDK/Consumers/IggyConsumer.Rented.cs | 41 +-
foreign/csharp/Iggy_SDK/Consumers/IggyConsumer.cs | 380 +-
.../csharp/Iggy_SDK/Consumers/IggyConsumerOfT.cs | 23 +-
.../csharp/Iggy_SDK/Contracts/Auth/UserResponse.cs | 25 +-
.../Contracts/Http/Auth/CreateUserRequest.cs | 9 +-
.../Contracts/Http/Auth/UpdateUserRequest.cs | 22 -
.../Iggy_SDK/Contracts/Http/CreateStreamRequest.cs | 11 +-
.../Iggy_SDK/Contracts/Http/CreateTopicRequest.cs | 47 +-
.../csharp/Iggy_SDK/Contracts/Http/OptionInputs.cs | 53 +
.../Iggy_SDK/Contracts/Http/UpdateStreamRequest.cs | 20 -
.../Iggy_SDK/Contracts/Http/UpdateTopicRequest.cs | 31 -
foreign/csharp/Iggy_SDK/Contracts/OptionKeys.cs | 241 +
foreign/csharp/Iggy_SDK/Contracts/OptionSpec.cs | 38 +-
foreign/csharp/Iggy_SDK/Contracts/OptionValues.cs | 62 +
foreign/csharp/Iggy_SDK/Contracts/OptionsPatch.cs | 53 +
.../{ClusterNodeStatus.cs => StreamOptionKey.cs} | 40 +-
foreign/csharp/Iggy_SDK/Contracts/StreamOptions.cs | 74 +
.../csharp/Iggy_SDK/Contracts/StreamResponse.cs | 56 +-
foreign/csharp/Iggy_SDK/Contracts/StreamUpdate.cs | 64 +
.../csharp/Iggy_SDK/Contracts/Tcp/TcpContracts.cs | 221 +-
.../csharp/Iggy_SDK/Contracts/TopicOptionKey.cs | 58 +
foreign/csharp/Iggy_SDK/Contracts/TopicOptions.cs | 139 +-
foreign/csharp/Iggy_SDK/Contracts/TopicResponse.cs | 34 +-
foreign/csharp/Iggy_SDK/Contracts/TopicUpdate.cs | 88 +
.../{ClusterNodeRole.cs => UserOptionKey.cs} | 17 +-
...rsonalAccessTokenResponse.cs => UserOptions.cs} | 26 +-
foreign/csharp/Iggy_SDK/Contracts/UserUpdate.cs | 78 +
.../csharp/Iggy_SDK/Encryption/EncryptionKeys.cs | 108 +
.../{Protocol.cs => PartitionResizePolicy.cs} | 18 +-
.../{UserStatus.cs => StreamEncryptionSource.cs} | 21 +-
.../Exceptions/IggyInvalidStatusCodeException.cs | 11 +-
...ctedException.cs => VsrLaneBlockedException.cs} | 11 +-
...tion.cs => VsrOperationNotRetainedException.cs} | 12 +-
.../VsrRequestOutcomeUnknownException.cs | 8 +-
.../Exceptions/VsrSessionEvictedException.cs | 11 +-
.../csharp/Iggy_SDK/Factory/IggyClientFactory.cs | 11 +-
foreign/csharp/Iggy_SDK/IggyClient/IIggyClient.cs | 26 +
foreign/csharp/Iggy_SDK/IggyClient/IIggyStream.cs | 17 +-
foreign/csharp/Iggy_SDK/IggyClient/IIggySystem.cs | 12 +-
foreign/csharp/Iggy_SDK/IggyClient/IIggyTopic.cs | 41 +-
foreign/csharp/Iggy_SDK/IggyClient/IIggyUsers.cs | 16 +-
.../Implementations/HttpMessageStream.cs | 111 +-
.../TcpMessageStream.PollRouting.cs | 941 ++-
.../TcpMessageStream.ReplicaLinks.cs | 593 ++
.../Implementations/TcpMessageStream.Vsr.cs | 810 +--
.../IggyClient/Implementations/TcpMessageStream.cs | 765 +--
foreign/csharp/Iggy_SDK/Iggy_SDK.csproj | 2 +-
.../JsonConverters/RedactedOptionsConverter.cs | 49 +
.../JsonConverters/ResourceOptionsConverter.cs | 133 +-
foreign/csharp/Iggy_SDK/Mappers/BinaryMapper.cs | 57 +-
.../Publishers/BackgroundMessageProcessor.cs | 80 +-
.../csharp/Iggy_SDK/Publishers/IggyPublisher.cs | 24 +-
foreign/csharp/Iggy_SDK/Utils/CommandCodes.cs | 12 +-
foreign/csharp/Iggy_SDK/Vsr/ConsensusSession.cs | 164 +-
.../Iggy_SDK/Vsr/ConsumerGroupClientState.cs | 3 +-
foreign/csharp/Iggy_SDK/Vsr/LoginRegister.cs | 4 +-
foreign/csharp/Iggy_SDK/Vsr/MutationLanes.cs | 739 +++
foreign/csharp/Iggy_SDK/Vsr/VsrConnection.cs | 637 +-
foreign/csharp/Iggy_SDK/Vsr/VsrError.cs | 31 +-
foreign/csharp/Iggy_SDK/Vsr/VsrHeader.cs | 18 +-
foreign/csharp/Iggy_SDK/Vsr/VsrOperation.cs | 66 +-
foreign/csharp/Iggy_SDK/Vsr/VsrReplyDecoder.cs | 18 +-
.../ClientTests/ConnectionStringTests.cs | 72 +
.../ClientTests/ExampleHelpersTests.cs | 5 +-
.../ClientTests/HttpPartitionContextTests.cs | 2 +-
.../ClientTests/HttpTopicOptionsTests.cs | 28 +-
.../ClientTests/IggyClientFactoryTests.cs | 23 +
.../PartitionIncarnationTests.Disposal.cs | 287 +
.../ConsumerTests/PartitionIncarnationTests.cs | 330 +-
.../ConsumerTests/PollFailureTests.cs | 457 ++
.../ConsumerTests/RentedConsumerTests.cs | 83 +
.../ContractsTests/TopicContractsTests.cs | 29 +-
.../ContractsTests/WireNameLengthContractsTests.cs | 62 +-
.../Iggy_SDK_Tests/Fixtures/resource_options.json | 1619 +++++
.../csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj | 7 +-
.../Iggy_SDK_Tests/MapperTests/BinaryMapper.cs | 64 +-
.../MapperTests/OptionsBlockGoldenVectorTests.cs | 15 +-
.../MapperTests/ResourceOptionsConverterTests.cs | 37 +-
.../MapperTests/ResourceOptionsTests.cs | 1187 ++++
.../PublisherTests/IggyTypedPublisherTests.cs | 69 +-
.../Iggy_SDK_Tests/UtilityTests/SendUnitTests.cs | 175 +
.../csharp/Iggy_SDK_Tests/Utils/BinaryFactory.cs | 32 +-
.../Iggy_SDK_Tests/Utils/Users/UsersFactory.cs | 3 +-
.../VsrTests/ConsensusSessionTests.cs | 70 +-
.../VsrTests/EndpointFailoverTests.cs | 873 ++-
foreign/csharp/Iggy_SDK_Tests/VsrTests/MockNode.cs | 61 +-
.../Iggy_SDK_Tests/VsrTests/MutationLaneTests.cs | 687 ++
.../VsrTests/NativeRecoveryTests.SignIn.cs | 710 +++
.../Iggy_SDK_Tests/VsrTests/NativeRecoveryTests.cs | 1925 ++++++
.../VsrTests/PartitionContextTests.cs | 7 +-
.../Iggy_SDK_Tests/VsrTests/PrimaryPollingTests.cs | 1367 +++-
.../Iggy_SDK_Tests/VsrTests/ReplicaLinkTests.cs | 482 ++
.../Iggy_SDK_Tests/VsrTests/VsrHeaderTests.cs | 2 +-
.../VsrTests/VsrMultiplexingTests.cs | 448 ++
.../Iggy_SDK_Tests/VsrTests/VsrOperationTests.cs | 18 +-
.../VsrTests/VsrProtocolDriftTests.cs | 45 +
.../VsrTests/VsrReplyDecoderTests.cs | 68 +-
.../Iggy_SDK_Tests/VsrTests/VsrTestPayloads.cs | 5 +
foreign/csharp/README.md | 212 +-
foreign/go/README.md | 200 +-
.../go/benchmarks/send_messages_benchmark_test.go | 16 +-
.../binary_response_deserializer.go | 147 +-
.../binary_response_deserializer_test.go | 78 +-
.../vsr_response_deserializer_test.go | 68 +-
foreign/go/client/example_resource_options_test.go | 87 +
foreign/go/client/iggy_client.go | 69 +-
foreign/go/client/iggy_client_test.go | 63 +-
foreign/go/client/tcp/cluster.go | 87 +-
.../go/client/tcp/tcp_access_token_management.go | 2 +-
foreign/go/client/tcp/tcp_connect_test.go | 825 ++-
.../go/client/tcp/tcp_consumer_group_management.go | 43 +-
foreign/go/client/tcp/tcp_core.go | 1428 +----
foreign/go/client/tcp/tcp_core_review_test.go | 71 +-
foreign/go/client/tcp/tcp_core_test.go | 286 +-
foreign/go/client/tcp/tcp_driver.go | 681 ++
foreign/go/client/tcp/tcp_driver_test.go | 908 +++
foreign/go/client/tcp/tcp_failover_test.go | 681 +-
foreign/go/client/tcp/tcp_group_polling.go | 78 +-
foreign/go/client/tcp/tcp_group_polling_test.go | 127 +
foreign/go/client/tcp/tcp_link.go | 235 +
foreign/go/client/tcp/tcp_link_test.go | 529 ++
foreign/go/client/tcp/tcp_messaging.go | 65 +-
foreign/go/client/tcp/tcp_offset_management.go | 9 +-
foreign/go/client/tcp/tcp_pending.go | 548 ++
foreign/go/client/tcp/tcp_poll_routing.go | 755 +--
foreign/go/client/tcp/tcp_poll_routing_test.go | 1595 ++++-
foreign/go/client/tcp/tcp_replicas.go | 618 ++
foreign/go/client/tcp/tcp_replicas_test.go | 1358 ++++
.../go/client/tcp/tcp_session_credentials_test.go | 457 +-
foreign/go/client/tcp/tcp_session_management.go | 842 ++-
foreign/go/client/tcp/tcp_stream_management.go | 21 +-
.../go/client/tcp/tcp_stream_management_test.go | 40 +-
foreign/go/client/tcp/tcp_testing_test.go | 131 +-
foreign/go/client/tcp/tcp_topic_cache.go | 14 +
foreign/go/client/tcp/tcp_topic_cache_test.go | 94 +-
foreign/go/client/tcp/tcp_topic_management.go | 46 +-
foreign/go/client/tcp/tcp_topic_management_test.go | 38 +-
foreign/go/client/tcp/tcp_user_management.go | 135 +-
foreign/go/contracts/client.go | 81 +-
foreign/go/contracts/option_diagnostics.go | 150 +
foreign/go/contracts/options.go | 22 +-
foreign/go/contracts/resource_options_test.go | 988 +++
foreign/go/contracts/stream.go | 53 +-
foreign/go/contracts/stream_options.go | 138 +
.../go/contracts/testdata/resource_options.json | 1619 +++++
foreign/go/contracts/topic_options.go | 130 +-
foreign/go/contracts/topics.go | 12 +-
foreign/go/contracts/user_options.go | 59 +
foreign/go/contracts/users.go | 13 +-
foreign/go/contracts/version.go | 2 +-
foreign/go/errors/errors.yaml | 56 +-
foreign/go/errors/errors_gen.go | 170 +-
foreign/go/errors/errors_test.go | 6 +-
foreign/go/go.mod | 1 -
foreign/go/go.sum | 2 -
foreign/go/internal/command/access_token.go | 12 +-
foreign/go/internal/command/access_token_test.go | 50 +
foreign/go/internal/command/code.go | 102 +-
foreign/go/internal/command/stream.go | 89 +-
foreign/go/internal/command/stream_test.go | 16 +-
foreign/go/internal/command/topic.go | 228 +-
foreign/go/internal/command/topic_test.go | 100 +-
foreign/go/internal/command/update_resource.go | 318 +
.../go/internal/command/update_resource_test.go | 181 +
foreign/go/internal/command/update_user.go | 94 +-
foreign/go/internal/command/update_user_test.go | 43 +-
foreign/go/internal/command/user.go | 9 +-
foreign/go/internal/vsr/envelope.go | 29 +-
foreign/go/internal/vsr/envelope_test.go | 12 +
foreign/go/internal/vsr/header.go | 29 +-
foreign/go/internal/vsr/operation.go | 23 +-
foreign/go/internal/vsr/operation_test.go | 17 +-
foreign/go/internal/vsr/protocol_parity_test.go | 8 +-
foreign/go/internal/vsr/register.go | 4 +-
foreign/go/internal/vsr/register_test.go | 6 +-
foreign/go/internal/vsr/reply.go | 106 +-
foreign/go/internal/vsr/reply_test.go | 214 +-
foreign/go/internal/vsr/session.go | 31 +-
foreign/go/internal/vsr/session_test.go | 40 +-
foreign/go/tests/e2e_helpers_test.go | 52 +-
foreign/go/tests/e2e_personal_access_token_test.go | 98 +
foreign/go/tests/e2e_resource_options_test.go | 301 +
foreign/go/tests/e2e_test.go | 90 +-
foreign/java/README.md | 185 +-
.../common/provision/ResourceProvisioner.java | 11 +-
.../connector/pinot/IggyPinotIntegrationTest.java | 6 +-
foreign/java/gradle.properties | 2 +-
foreign/java/gradle/libs.versions.toml | 6 +-
.../java/gradle/wrapper/gradle-wrapper.properties | 2 +-
foreign/java/gradlew | 87 +-
foreign/java/java-sdk/build.gradle.kts | 2 +-
.../org/apache/iggy/builder/TcpClientBuilder.java | 20 +
.../apache/iggy/client/async/StreamsClient.java | 52 +-
.../org/apache/iggy/client/async/TopicsClient.java | 116 +-
.../org/apache/iggy/client/async/UsersClient.java | 37 +-
.../iggy/client/async/tcp/AsyncIggyTcpClient.java | 1076 +++-
.../async/tcp/AsyncIggyTcpClientBuilder.java | 72 +-
.../iggy/client/async/tcp/AsyncTcpConnection.java | 1394 +++--
.../iggy/client/async/tcp/ConnectionHeartbeat.java | 132 +
.../client/async/tcp/ConsumerGroupsTcpClient.java | 62 +-
.../client/async/tcp/ConsumerOffsetsTcpClient.java | 23 +-
.../async/tcp/CredentialsListener.java} | 9 +-
.../iggy/client/async/tcp/IggyAuthenticator.java | 78 +
.../iggy/client/async/tcp/LeaderAwareness.java | 45 +-
.../iggy/client/async/tcp/LoginRoutingHook.java | 17 +-
.../iggy/client/async/tcp/MessagesTcpClient.java | 345 +-
.../iggy/client/async/tcp/PartitionsTcpClient.java | 22 +-
.../async/tcp/PersonalAccessTokensTcpClient.java | 25 +-
.../apache/iggy/client/async/tcp/PollRouter.java | 1271 +++-
.../iggy/client/async/tcp/PoolChannelHandler.java | 93 +
.../client/async/tcp/RawPartitionRequests.java | 2 +-
.../apache/iggy/client/async/tcp/SessionLogin.java | 155 +
.../iggy/client/async/tcp/StreamsTcpClient.java | 58 +-
.../iggy/client/async/tcp/SystemTcpClient.java | 49 +-
.../iggy/client/async/tcp/TopicsTcpClient.java | 167 +-
.../tcp/TransientFailoverHandler.java} | 27 +-
.../client/async/tcp/UserPatchCredentials.java | 88 +
.../iggy/client/async/tcp/UsersTcpClient.java | 114 +-
.../async/tcp/VsrExchange.java} | 39 +-
.../client/async/tcp/vsr/ConsensusSession.java | 866 ++-
.../iggy/client/async/tcp/vsr/VsrHeaders.java | 7 +
.../iggy/client/async/tcp/vsr/VsrLoginCodec.java | 2 +-
.../iggy/client/async/tcp/vsr/VsrOperation.java | 30 +-
.../client/async/tcp/vsr/VsrRequestEncoder.java | 25 +-
.../client/async/tcp/vsr/VsrResponseHandler.java | 256 +-
.../apache/iggy/client/blocking/StreamsClient.java | 32 +-
.../apache/iggy/client/blocking/TopicsClient.java | 87 +-
.../apache/iggy/client/blocking/UsersClient.java | 21 +-
.../iggy/client/blocking/http/HttpOptionValue.java | 164 +
.../client/blocking/http/InternalHttpClient.java | 2 +-
.../client/blocking/http/StreamsHttpClient.java | 60 +-
.../client/blocking/http/SystemHttpClient.java | 31 +-
.../client/blocking/http/TopicsHttpClient.java | 99 +-
.../iggy/client/blocking/http/UsersHttpClient.java | 77 +-
.../iggy/client/blocking/tcp/IggyTcpClient.java | 18 +
.../client/blocking/tcp/IggyTcpClientBuilder.java | 34 +-
.../iggy/client/blocking/tcp/StreamsTcpClient.java | 11 +-
.../iggy/client/blocking/tcp/TopicsTcpClient.java | 26 +-
.../iggy/client/blocking/tcp/UsersTcpClient.java | 14 +-
.../java/org/apache/iggy/config/RetryPolicy.java | 10 +-
.../apache/iggy/config/TcpConnectionString.java | 263 +
.../org/apache/iggy/exception/IggyErrorCode.java | 17 +
.../iggy/exception/IggyOperationException.java} | 29 +-
.../iggy/exception/IggyValidationException.java | 9 +-
.../org/apache/iggy/serde/BytesDeserializer.java | 45 +-
.../org/apache/iggy/serde/BytesSerializer.java | 144 +
.../java/org/apache/iggy/serde/CommandCode.java | 18 +-
.../apache/iggy/stream/EncryptionKeySource.java} | 32 +-
.../org/apache/iggy/stream/EncryptionKeys.java | 120 +
.../apache/iggy/stream/EncryptionProjection.java | 60 +
.../java/org/apache/iggy/stream/StreamBase.java | 31 +-
.../java/org/apache/iggy/stream/StreamDetails.java | 42 +-
.../org/apache/iggy/stream/StreamOptionKey.java | 59 +
.../java/org/apache/iggy/stream/StreamOptions.java | 128 +
.../java/org/apache/iggy/stream/StreamUpdate.java | 138 +
.../java/org/apache/iggy/system/OptionKey.java | 177 +
.../java/org/apache/iggy/system/OptionSpec.java | 47 +-
...{Durability.java => PartitionResizePolicy.java} | 9 +-
.../src/main/java/org/apache/iggy/topic/Topic.java | 33 +-
.../java/org/apache/iggy/topic/TopicDetails.java | 22 +-
.../java/org/apache/iggy/topic/TopicOptionKey.java | 63 +
.../java/org/apache/iggy/topic/TopicOptions.java | 123 +-
.../java/org/apache/iggy/topic/TopicSettings.java | 67 +
.../java/org/apache/iggy/topic/TopicUpdate.java | 174 +
.../main/java/org/apache/iggy/user/UserInfo.java | 22 +-
.../java/org/apache/iggy/user/UserInfoDetails.java | 26 +-
.../java/org/apache/iggy/user/UserOptionKey.java} | 25 +-
.../java/org/apache/iggy/user/UserOptions.java | 74 +
.../main/java/org/apache/iggy/user/UserUpdate.java | 163 +
.../src/test/java/org/apache/iggy/IggyTest.java | 4 +
.../java/org/apache/iggy/ProtocolParityTest.java | 217 +
.../org/apache/iggy/ResourceOptionsFixture.java | 201 +
...nnectionExceptionTest.java => RustSources.java} | 32 +-
.../test/java/org/apache/iggy/TestConstants.java | 5 +-
.../apache/iggy/client/BaseIntegrationTest.java | 6 +-
.../client/async/AsyncClientIntegrationTest.java | 185 +-
.../client/async/AsyncConnectionPoolAuthTest.java | 42 +-
.../iggy/client/async/AsyncConsumerGroupsTest.java | 10 +-
.../iggy/client/async/ResourceOptionsTest.java | 371 ++
...ncIggyTcpClientBuilderConnectionStringTest.java | 65 +
.../async/tcp/AsyncIggyTcpClientBuilderTest.java | 21 +
.../AsyncIggyTcpClientCredentialChangeTest.java | 293 +
.../AsyncIggyTcpClientEndpointFailoverTest.java | 1597 ++++-
.../tcp/AsyncIggyTcpClientEventLoopGroupTest.java | 6 +-
.../tcp/AsyncIggyTcpClientFailoverSignInTest.java | 406 ++
.../async/tcp/AsyncIggyTcpClientLockOrderTest.java | 183 +
.../tcp/AsyncIggyTcpClientLoginRoutingTest.java | 156 +-
.../tcp/AsyncIggyTcpClientLostLinkReplayTest.java | 295 +
.../tcp/AsyncIggyTcpClientNamespaceMissTest.java | 508 ++
.../AsyncIggyTcpClientPartitionContextTest.java | 56 +-
.../tcp/AsyncIggyTcpClientPartitionWriteTest.java | 118 +
.../tcp/AsyncIggyTcpClientRawRequestTest.java | 238 +-
.../async/tcp/AsyncIggyTcpClientRecoveryTest.java | 1929 ++++++
.../AsyncIggyTcpClientSendContextCacheTest.java | 206 +-
.../tcp/AsyncIggyTcpClientSessionRulesTest.java | 1225 ++++
.../AsyncIggyTcpClientTransientFailoverTest.java | 307 +-
.../tcp/AsyncTcpConnectionConcurrencyTest.java | 433 +-
.../tcp/AsyncTcpConnectionLifecycleBusyTest.java | 195 +-
.../tcp/AsyncTcpConnectionRequestTimeoutTest.java | 137 +-
.../iggy/client/async/tcp/LeaderAwarenessTest.java | 30 -
.../client/async/tcp/LoginRoutingHookTest.java | 4 +-
.../iggy/client/async/tcp/PollRouterTest.java | 1297 +++-
.../async/tcp/TopicsTcpClientPayloadTest.java | 42 +-
.../client/async/tcp/vsr/ConsensusSessionTest.java | 469 ++
.../client/async/tcp/vsr/VsrLoginCodecTest.java | 11 +-
.../client/async/tcp/vsr/VsrOperationTest.java | 69 +
.../async/tcp/vsr/VsrRequestEncoderTest.java | 31 +-
.../async/tcp/vsr/VsrResponseHandlerTest.java | 294 +-
.../iggy/client/blocking/IntegrationTest.java | 12 +-
.../iggy/client/blocking/StreamClientBaseTest.java | 155 +-
.../iggy/client/blocking/SystemClientBaseTest.java | 43 +-
.../iggy/client/blocking/TopicsClientBaseTest.java | 126 +-
.../iggy/client/blocking/UsersClientBaseTest.java | 66 +-
.../client/blocking/http/HttpOptionValueTest.java | 215 +
.../http/InternalHttpClientLoggingTest.java | 61 +
.../http/MessagesHttpClientSendContextTest.java | 4 +-
.../client/blocking/http/StreamHttpClientTest.java | 37 +
.../blocking/tcp/IggyTcpClientBuilderTest.java | 13 +
.../client/blocking/tcp/MessagesTcpClientTest.java | 12 +-
.../client/blocking/tcp/TlsConnectionTest.java | 4 +-
.../client/blocking/tcp/TopicsTcpClientTest.java | 18 +-
.../client/blocking/tcp/UsersTcpClientTest.java | 12 +
.../iggy/config/TcpConnectionStringTest.java | 210 +
.../exception/IggyValidationExceptionTest.java | 18 +-
.../apache/iggy/serde/BytesDeserializerTest.java | 16 +-
.../org/apache/iggy/serde/ResourceOptionsTest.java | 670 ++
.../org/apache/iggy/stream/StreamDetailsTest.java | 21 +-
.../org/apache/iggy/topic/TopicDetailsTest.java | 18 +-
.../org/apache/iggy/topic/TopicOptionsTest.java | 15 +-
.../org/apache/iggy/user/UserInfoDetailsTest.java | 2 +-
.../src/test/resources/resource_options.json | 1619 +++++
foreign/node/README.md | 269 +-
foreign/node/docker-compose.yml | 3 +
foreign/node/package-lock.json | 295 +-
foreign/node/package.json | 7 +-
foreign/node/scripts/check-vsr-protocol.mjs | 22 +
foreign/node/src/bdd/README.md | 3 +
foreign/node/src/bdd/env.ts | 10 +-
foreign/node/src/bdd/resource-options.ts | 333 +
foreign/node/src/bdd/session.ts | 63 +
foreign/node/src/bdd/world.ts | 10 +-
foreign/node/src/client.e2e.ts | 8 +-
foreign/node/src/client/client.config.test.ts | 18 +-
foreign/node/src/client/client.config.ts | 16 +-
.../src/client/client.connection-string.test.ts | 49 +
.../node/src/client/client.connection-string.ts | 19 +-
foreign/node/src/client/client.connection.test.ts | 1176 +---
foreign/node/src/client/client.connection.ts | 742 +--
foreign/node/src/client/client.operation.test.ts | 310 +
foreign/node/src/client/client.operation.ts | 445 ++
foreign/node/src/client/client.socket.test.ts | 4803 +++++++++++---
foreign/node/src/client/client.socket.ts | 2348 ++++---
foreign/node/src/client/client.ts | 124 +-
foreign/node/src/client/client.type.ts | 78 +-
foreign/node/src/client/index.ts | 1 +
...est-client.utils.ts => resource-options.e2e.ts} | 15 +-
foreign/node/src/e2e/resource-options.suite.ts | 323 +
foreign/node/src/e2e/tcp.consumer-stream.e2e.ts | 4 +
foreign/node/src/e2e/tcp.parallel.e2e.ts | 7 +-
foreign/node/src/e2e/tcp.token.e2e.ts | 10 +-
foreign/node/src/e2e/tcp.user.e2e.ts | 51 +-
foreign/node/src/e2e/tls.system.e2e.ts | 47 +-
foreign/node/src/index.ts | 17 +
foreign/node/src/stream/consumer-stream.ts | 134 +-
foreign/node/src/wire/command-set.ts | 21 +-
foreign/node/src/wire/command.code.ts | 12 +-
foreign/node/src/wire/error.code.test.ts | 9 +
foreign/node/src/wire/error.code.ts | 8 +-
foreign/node/src/wire/error.utils.ts | 2 +
.../node/src/wire/fixtures/resource_options.json | 1619 +++++
foreign/node/src/wire/index.ts | 4 +
.../src/wire/message/poll-messages.command.test.ts | 105 +-
.../node/src/wire/message/poll-messages.command.ts | 70 +-
.../node/src/wire/message/send-messages.command.ts | 17 +-
foreign/node/src/wire/options.utils.ts | 80 +
.../src/wire/session/login-with-token.command.ts | 10 +-
foreign/node/src/wire/session/login.command.ts | 10 +-
.../node/src/wire/stream/create-stream.command.ts | 33 +-
foreign/node/src/wire/stream/index.ts | 1 +
.../node/src/wire/stream/stream-options.test.ts | 113 +
foreign/node/src/wire/stream/stream-options.ts | 140 +
foreign/node/src/wire/stream/stream.utils.ts | 31 +-
.../node/src/wire/stream/update-stream.command.ts | 52 +-
.../src/wire/system/describe-options.command.ts | 43 +-
foreign/node/src/wire/system/index.ts | 1 +
.../wire/system/update-resource.command.test.ts | 680 ++
.../src/wire/system/update-resource.command.ts | 173 +
.../src/wire/token/create-token.command.test.ts | 14 +
.../node/src/wire/token/create-token.command.ts | 4 +-
.../node/src/wire/topic/create-topic.command.ts | 43 +-
foreign/node/src/wire/topic/index.ts | 2 +-
foreign/node/src/wire/topic/topic.utils.test.ts | 26 +-
foreign/node/src/wire/topic/topic.utils.ts | 44 +-
.../node/src/wire/topic/update-topic.command.ts | 87 +-
foreign/node/src/wire/user/create-user.command.ts | 23 +-
foreign/node/src/wire/user/index.ts | 1 +
foreign/node/src/wire/user/update-user.command.ts | 82 +-
foreign/node/src/wire/user/user.utils.ts | 13 +-
foreign/node/src/wire/vsr/header.ts | 16 +-
foreign/node/src/wire/vsr/index.ts | 19 +-
foreign/node/src/wire/vsr/operation.test.ts | 33 +-
foreign/node/src/wire/vsr/operation.ts | 41 +-
foreign/node/src/wire/vsr/register.ts | 4 +-
foreign/node/src/wire/vsr/reply.test.ts | 16 +-
foreign/node/src/wire/vsr/reply.ts | 49 +-
foreign/node/src/wire/vsr/session.test.ts | 29 +-
foreign/node/src/wire/vsr/session.ts | 34 +-
foreign/node/src/wire/vsr/vsr.test.ts | 57 +-
foreign/node/tsconfig.json | 1 +
foreign/php/Cargo.toml | 5 +-
foreign/php/Dockerfile.test | 4 +-
foreign/php/README.md | 74 +-
foreign/php/docker-compose.test.yml | 4 +
foreign/php/iggy-php.stubs.php | 330 +-
foreign/php/src/client.rs | 387 +-
foreign/php/src/error.rs | 108 +-
foreign/php/src/lib.rs | 14 +-
foreign/php/src/options.rs | 338 +
foreign/php/src/receive_message.rs | 6 +-
foreign/php/src/send_message.rs | 8 +-
foreign/php/src/sensitive_parameters.rs | 135 +
foreign/php/src/stream.rs | 48 +-
foreign/php/src/topic.rs | 22 +-
foreign/php/tests/ErrorTest.php | 18 +
foreign/php/tests/RawCommandTest.php | 141 +
foreign/php/tests/ResourceOptionsTest.php | 640 ++
foreign/php/tests/SensitiveParameterTest.php | 166 +
foreign/php/tests/bootstrap.php | 32 +-
foreign/php/tests/fixtures/resource_options.json | 1619 +++++
foreign/python/Cargo.toml | 16 +-
foreign/python/README.md | 158 +-
foreign/python/apache_iggy.pyi | 793 ++-
foreign/python/docker-compose.test.yml | 3 +
foreign/python/pyproject.toml | 6 +-
foreign/python/src/bin/stub_gen.rs | 2 +
foreign/python/src/client.rs | 638 +-
foreign/python/src/config.rs | 180 +-
foreign/python/src/consumer.rs | 15 +-
foreign/python/src/identifier.rs | 11 +-
foreign/python/src/lib.rs | 25 +-
foreign/python/src/options.rs | 64 +-
foreign/python/src/producer.rs | 275 +-
foreign/python/src/resource_options.rs | 614 ++
foreign/python/src/stream.rs | 90 +
foreign/python/src/topic.rs | 67 +-
foreign/python/src/user.rs | 107 +-
foreign/python/tests/conftest.py | 70 +-
.../python/tests/fixtures/resource_options.json | 1619 +++++
foreign/python/tests/test_cleanup.py | 169 +
foreign/python/tests/test_client_config.py | 35 +-
foreign/python/tests/test_consumer_group.py | 267 +-
foreign/python/tests/test_http_config.py | 8 +-
foreign/python/tests/test_message_operations.py | 131 +-
foreign/python/tests/test_partition.py | 5 +-
foreign/python/tests/test_permissions.py | 2 +-
foreign/python/tests/test_producer.py | 100 +-
foreign/python/tests/test_quic_config.py | 37 +-
foreign/python/tests/test_raw_command.py | 75 +-
foreign/python/tests/test_resource_options.py | 742 +++
foreign/python/tests/test_segment.py | 45 +-
foreign/python/tests/test_stats.py | 14 +-
foreign/python/tests/test_stream.py | 4 +-
foreign/python/tests/test_tls.py | 2 +-
foreign/python/tests/test_topic.py | 303 +-
foreign/python/tests/test_user.py | 267 +-
foreign/python/uv.lock | 49 +-
foreign/swift/Package.resolved | 78 +
foreign/swift/Package.swift | 30 +-
foreign/swift/README.md | 236 +-
.../Sources/Iggy/Client/ClientConfiguration.swift | 144 +
foreign/swift/Sources/Iggy/Client/ClientCore.swift | 1630 +++++
.../Sources/Iggy/Client/ConsumerGroupState.swift | 223 +
.../Sources/Iggy/Client/IggyClient+Messages.swift | 434 ++
.../Sources/Iggy/Client/IggyClient+Resources.swift | 265 +
foreign/swift/Sources/Iggy/Client/IggyClient.swift | 280 +
foreign/swift/Sources/Iggy/Client/PollRouter.swift | 854 +++
foreign/swift/Sources/Iggy/Errors/IggyError.swift | 42 +
.../swift/Sources/Iggy/Errors/IggyErrorCode.swift | 12 +
foreign/swift/Sources/Iggy/Iggy.swift | 2 +-
.../swift/Sources/Iggy/Models/EncryptionKey.swift | 65 +
foreign/swift/Sources/Iggy/Models/Identifier.swift | 16 +
.../swift/Sources/Iggy/Models/IggyMessage.swift | 6 +
foreign/swift/Sources/Iggy/Models/Messaging.swift | 58 +-
.../Sources/Iggy/Models/ResourceOptions.swift | 116 +-
foreign/swift/Sources/Iggy/Models/Resources.swift | 22 +-
.../swift/Sources/Iggy/Models/StreamOptions.swift | 191 +
.../swift/Sources/Iggy/Models/TopicOptions.swift | 198 +-
.../swift/Sources/Iggy/Models/UserHeaders.swift | 2 +-
.../swift/Sources/Iggy/Models/UserOptions.swift | 88 +
.../swift/Sources/Iggy/Protocol/CommandCode.swift | 34 +-
.../Sources/Iggy/Protocol/ConsensusOperation.swift | 27 +-
.../Sources/Iggy/Protocol/ConsensusSession.swift | 16 +-
.../Sources/Iggy/Protocol/ProtocolVersion.swift | 2 +-
foreign/swift/Sources/Iggy/Protocol/Requests.swift | 94 +-
.../swift/Sources/Iggy/Protocol/Responses.swift | 96 +-
foreign/swift/Sources/Iggy/Protocol/VSRFrame.swift | 51 +-
.../swift/Sources/Iggy/Transport/Endpoint.swift | 155 +
.../Sources/Iggy/Transport/TCPConnection.swift | 298 +
.../swift/Sources/Iggy/Transport/TLSOptions.swift | 67 +
.../swift/Sources/Iggy/Utilities/AsyncMutex.swift | 201 +
.../swift/Tests/IggyE2ETests/ClientE2ETests.swift | 711 +++
.../IggyE2ETests/ResourceOptionsE2ETests.swift | 309 +
.../IggyE2ETests/Support/E2EEnvironment.swift | 236 +
.../Tests/IggyTests/ClientTransportTests.swift | 2641 ++++++++
.../swift/Tests/IggyTests/ConcurrencyTests.swift | 217 +
.../swift/Tests/IggyTests/ConfigurationTests.swift | 120 +
.../Tests/IggyTests/ConsumerGroupStateTests.swift | 122 +
foreign/swift/Tests/IggyTests/Fixtures/golden.json | 75 +-
.../Tests/IggyTests/Fixtures/resource_options.json | 1619 +++++
foreign/swift/Tests/IggyTests/MessagingTests.swift | 2112 +++++++
foreign/swift/Tests/IggyTests/ModelTests.swift | 57 +-
.../swift/Tests/IggyTests/ModelVectorTests.swift | 29 +-
foreign/swift/Tests/IggyTests/ProtocolTests.swift | 49 +-
.../Tests/IggyTests/ResourceOptionsTests.swift | 586 ++
.../Tests/IggyTests/ResponseVectorTests.swift | 32 +-
.../Tests/IggyTests/Support/FakeVSRServer.swift | 482 ++
.../IggyTests/Support/ResourceOptionsFixture.swift | 412 ++
.../Tests/IggyTests/Support/TestHelpers.swift | 85 +
.../swift/Tests/IggyTests/WireVectorTests.swift | 66 +-
foreign/swift/Tools/golden-vectors/src/main.rs | 269 +-
gateways/kafka/Cargo.toml | 11 +-
gateways/kafka/Dockerfile | 21 +-
gateways/kafka/README.md | 348 +-
gateways/kafka/docker-compose.yml | 11 +-
gateways/kafka/docs/ACL_MAPPING.md | 17 +-
gateways/kafka/docs/AUTHENTICATION.md | 123 +-
gateways/kafka/docs/BRIDGE_MAPPING.md | 64 +-
gateways/kafka/docs/CONFIGS.md | 100 +-
gateways/kafka/docs/CONSUMER_GROUPS.md | 260 +-
gateways/kafka/docs/MANUAL_TESTING.md | 196 +-
gateways/kafka/docs/OFFSET_STORAGE.md | 13 +-
gateways/kafka/docs/SCOPE.md | 178 +-
gateways/kafka/docs/TEST_SUITE.md | 33 +-
gateways/kafka/docs/kafka_api_keys_reference.md | 21 +-
gateways/kafka/scripts/ci-wire-fixtures.sh | 2 +-
gateways/kafka/src/auth.rs | 133 +-
gateways/kafka/src/bridge/config.rs | 99 +-
gateways/kafka/src/bridge/error.rs | 158 +-
.../kafka/src/bridge/iggy_bridge/cluster_id.rs | 416 ++
gateways/kafka/src/bridge/iggy_bridge/fetch.rs | 231 +-
.../kafka/src/bridge/iggy_bridge/group_index.rs | 851 +++
.../kafka/src/bridge/iggy_bridge/group_offsets.rs | 1216 +++-
gateways/kafka/src/bridge/iggy_bridge/mod.rs | 193 +-
gateways/kafka/src/bridge/iggy_bridge/offsets.rs | 114 +-
gateways/kafka/src/bridge/iggy_bridge/produce.rs | 36 +-
gateways/kafka/src/bridge/iggy_bridge/topics.rs | 289 +-
gateways/kafka/src/bridge/mod.rs | 11 +-
gateways/kafka/src/bridge/topic_map.rs | 213 +-
gateways/kafka/src/cluster_id.rs | 202 +
gateways/kafka/src/error.rs | 4 +
gateways/kafka/src/group/mod.rs | 419 +-
gateways/kafka/src/group/offset_work.rs | 323 +
gateways/kafka/src/group/state.rs | 2051 +++++-
gateways/kafka/src/lib.rs | 3 +
gateways/kafka/src/listener.rs | 463 ++
gateways/kafka/src/main.rs | 698 ++-
gateways/kafka/src/protocol/api.rs | 217 +-
gateways/kafka/src/protocol/auto_topic_creation.rs | 503 ++
gateways/kafka/src/protocol/bounds_guard.rs | 362 +-
.../kafka/src/protocol/handlers/alter_configs.rs | 54 +-
.../kafka/src/protocol/handlers/api_versions.rs | 65 +-
.../src/protocol/handlers/create_partitions.rs | 1702 +++++
.../kafka/src/protocol/handlers/create_topics.rs | 50 +-
.../kafka/src/protocol/handlers/delete_groups.rs | 535 ++
.../kafka/src/protocol/handlers/delete_topics.rs | 38 +-
.../src/protocol/handlers/describe_cluster.rs | 232 +
.../src/protocol/handlers/describe_configs.rs | 24 +-
.../kafka/src/protocol/handlers/describe_groups.rs | 136 +-
gateways/kafka/src/protocol/handlers/fetch.rs | 32 +-
.../src/protocol/handlers/find_coordinator.rs | 15 +-
gateways/kafka/src/protocol/handlers/heartbeat.rs | 1 +
...ter_configs.rs => incremental_alter_configs.rs} | 217 +-
gateways/kafka/src/protocol/handlers/join_group.rs | 4 +-
.../kafka/src/protocol/handlers/list_groups.rs | 139 +-
.../kafka/src/protocol/handlers/list_offsets.rs | 987 ++-
gateways/kafka/src/protocol/handlers/metadata.rs | 256 +-
gateways/kafka/src/protocol/handlers/mod.rs | 82 +-
.../kafka/src/protocol/handlers/offset_commit.rs | 21 +-
.../kafka/src/protocol/handlers/offset_delete.rs | 548 ++
.../kafka/src/protocol/handlers/offset_fetch.rs | 5 +-
gateways/kafka/src/protocol/handlers/produce.rs | 13 +-
.../kafka/src/protocol/handlers/topic_config.rs | 355 +-
gateways/kafka/src/protocol/mod.rs | 1 +
gateways/kafka/src/records.rs | 107 +-
gateways/kafka/src/server.rs | 1058 +++-
gateways/kafka/src/tls/identity.rs | 1211 ++++
gateways/kafka/src/tls/mod.rs | 586 ++
gateways/kafka/tests/api_handler_tests.rs | 89 +-
.../kafka/tests/bridge_iggy_integration_tests.rs | 260 +-
gateways/kafka/tests/broker_advertise_tests.rs | 55 +-
.../kafka/tests/cluster_id_real_bridge_tests.rs | 434 ++
gateways/kafka/tests/common/certs.rs | 186 +
gateways/kafka/tests/common/iggy_server.rs | 53 +-
gateways/kafka/tests/common/scope.rs | 7 +-
gateways/kafka/tests/common/server.rs | 66 +-
gateways/kafka/tests/common/tcp.rs | 15 +-
gateways/kafka/tests/common/wire.rs | 120 +-
gateways/kafka/tests/configs_handler_tests.rs | 129 +-
gateways/kafka/tests/configs_java_client_tests.rs | 24 +-
gateways/kafka/tests/configs_real_bridge_tests.rs | 512 +-
gateways/kafka/tests/consumer_group_tests.rs | 77 +-
.../tests/create_partitions_real_bridge_tests.rs | 687 ++
.../kafka/tests/create_topics_real_bridge_tests.rs | 33 +-
.../kafka/tests/delete_topics_real_bridge_tests.rs | 174 +-
gateways/kafka/tests/fetch_real_bridge_tests.rs | 6 +-
gateways/kafka/tests/golden_wire_fixtures_tests.rs | 26 +-
gateways/kafka/tests/idempotence_tests.rs | 5 -
gateways/kafka/tests/java/ConfigsProbe.java | 34 +-
.../kafka/tests/java/OffsetsForTimesProbe.java | 59 +
gateways/kafka/tests/kafka_client_e2e_tests.rs | 1291 +++-
.../kafka/tests/list_offsets_real_bridge_tests.rs | 325 +-
gateways/kafka/tests/metadata_real_bridge_tests.rs | 503 +-
.../kafka/tests/offset_groups_real_bridge_tests.rs | 1373 ++++
gateways/kafka/tests/offsets_real_bridge_tests.rs | 6 +-
gateways/kafka/tests/produce_real_bridge_tests.rs | 9 +-
gateways/kafka/tests/sasl_tests.rs | 17 +-
gateways/kafka/tests/tls_listener_tests.rs | 971 +++
gateways/kafka/tests/version_firewall_tests.rs | 83 +-
gateways/kafka/tools/kafka-tool/README.md | 4 +-
gateways/kafka/tools/kafka-tool/src/main.rs | 61 +
gateways/kafka/tools/kafka-tool/src/response.rs | 51 +-
helm/charts/iggy/Chart.yaml | 2 +-
helm/charts/iggy/README.md | 33 +-
helm/charts/iggy/README.md.gotmpl | 23 +-
helm/charts/iggy/examples/cluster-3-node.yaml | 18 +-
helm/charts/iggy/templates/_helpers.tpl | 65 +-
helm/charts/iggy/templates/server-secrets.yaml | 5 +-
helm/charts/iggy/values.yaml | 20 +-
rust-toolchain.toml | 2 +-
scripts/bump-version.sh | 6 +-
scripts/ci/apt-install.sh | 72 +-
scripts/ci/coverage-baseline-affected.sh | 2 +-
.../build_release.sh => ci/restore-runtime.sh} | 19 +-
scripts/ci/storage-compat.sh | 52 +-
scripts/ci/test-helm.sh | 98 +-
scripts/ci/test-runtime-artifacts.py | 387 ++
scripts/ci/third-party-licenses.sh | 3 +
.../performance/run-standard-performance-suite.sh | 18 +-
scripts/profile.sh | 2 +-
scripts/run-bdd-tests.sh | 19 +-
scripts/run-examples-from-readme.sh | 25 +-
web/docs/server-api.http | 57 +-
web/package-lock.json | 330 +-
web/package.json | 16 +-
web/src/lib/api/ApiSchema.ts | 40 +-
web/src/lib/api/resourceOptions.test.mjs | 159 +
web/src/lib/api/resourceOptions.ts | 146 +
.../lib/components/Modals/AddStreamModal.svelte | 39 +-
web/src/lib/components/Modals/AddTopicModal.svelte | 37 +-
web/src/lib/components/Modals/EditUserModal.svelte | 116 +-
.../components/Modals/StreamSettingsModal.svelte | 30 +-
.../components/Modals/TopicSettingsModal.svelte | 100 +-
.../RouteComponents/Settings/UsersTab.svelte | 8 +-
web/src/lib/domain/Stream.ts | 11 +-
web/src/lib/domain/Topic.ts | 25 +-
.../routes/dashboard/settings/users/+page.svelte | 9 +-
1421 files changed, 225676 insertions(+), 46030 deletions(-)
create mode 100644 .github/actions/bdd/pre-merge/action.yml
create mode 100644 .github/actions/utils/download-runtime/action.yml
rename .github/actions/utils/{setup-cpp-with-cache => setup-cpp}/action.yml (82%)
rename .github/actions/utils/{setup-go-with-cache => setup-go}/action.yml (98%)
rename .github/actions/utils/{setup-java-with-cache => setup-java}/action.yml (98%)
rename .github/actions/utils/{setup-node-with-cache => setup-node}/action.yml (68%)
rename .github/actions/utils/{setup-rust-with-cache => setup-rust}/action.yml (74%)
create mode 100644 .github/workflows/_build_ci_artifacts.yml
create mode 100644 .github/workflows/_rust.yml
create mode 100644 .github/workflows/_rust_tests.yml
create mode 100644 bdd/cpp/features/step_definitions/resource_options_steps.cpp
create mode 100644 bdd/cpp/features/step_definitions/session_contract_steps.cpp
create mode 100644 bdd/docker-compose.no-quorum.yml
create mode 100644 bdd/go/tests/resource_options.go
create mode 100644 bdd/go/tests/session_contract.go
create mode 100644 bdd/java/src/test/java/org/apache/iggy/bdd/ResourceOptionsSteps.java
copy bdd/php/tests/{RawCommandFeatureTest.php => SessionContractFeatureTest.php} (56%)
copy examples/php/getting-started/producer.php => bdd/php/tests/SharedFeatureParserTest.php (51%)
create mode 100644 bdd/php/tests/StreamOptionsFeatureTest.php
create mode 100644 bdd/python/tests/test_resource_options_patch.py
copy bdd/python/tests/{test_raw_command.py => test_session_contract.py} (50%)
create mode 100644 bdd/python/tests/test_stream_options.py
copy bdd/rust/tests/{basic_messaging.rs => resource_options_patch.rs} (93%)
copy bdd/rust/tests/{basic_messaging.rs => session_contract.rs} (93%)
create mode 100644 bdd/rust/tests/steps/resource_options.rs
create mode 100644 bdd/rust/tests/steps/session.rs
copy bdd/rust/tests/{stream_crud.rs => stream_options.rs} (93%)
create mode 100644 bdd/scenarios/resource_options_patch.feature
copy bdd/scenarios/{raw_command.feature => session_contract.feature} (52%)
create mode 100644 bdd/scenarios/stream_options.feature
create mode 100644 core/binary_protocol/src/consensus/primary_rebalance.rs
create mode 100644 core/binary_protocol/src/consensus/segment_delete.rs
create mode 100644 core/binary_protocol/src/requests/streams/rewrap_stream_keys.rs
delete mode 100644 core/binary_protocol/src/requests/streams/update_stream.rs
create mode 100644 core/binary_protocol/src/requests/streams/update_stream_resolved.rs
create mode 100644 core/binary_protocol/src/requests/system/update_resource.rs
delete mode 100644 core/binary_protocol/src/requests/topics/update_topic.rs
create mode 100644 core/binary_protocol/src/requests/topics/update_topic_resolved.rs
delete mode 100644 core/binary_protocol/src/requests/users/update_user.rs
create mode 100644 core/binary_protocol/src/requests/users/update_user_resolved.rs
delete mode 100644 core/binary_protocol/src/responses/messages/poll_routing.rs
delete mode 100644 core/binary_protocol/src/responses/streams/update_stream.rs
copy core/{bench/dashboard/frontend/src/components/theme/mod.rs => binary_protocol/src/responses/system/update_resource.rs} (89%)
delete mode 100644 core/binary_protocol/src/responses/topics/update_topic.rs
delete mode 100644 core/binary_protocol/src/responses/users/update_user.rs
create mode 100644 core/common/benches/stream_encryption.rs
create mode 100644 core/common/examples/resource_options_fixtures.rs
create mode 100644 core/common/examples/resource_options_fixtures/schema.rs
create mode 100644 core/common/fixtures/resource_options.json
create mode 100644 core/common/src/http/options.rs
delete mode 100644 core/common/src/http/streams/update_stream.rs
delete mode 100644 core/common/src/http/topics/update_topic.rs
delete mode 100644 core/common/src/http/users/update_user.rs
create mode 100644 core/common/src/types/configuration/pending_operations_config.rs
create mode 100644 core/common/src/types/options/catalog.rs
create mode 100644 core/common/src/types/options/codec.rs
create mode 100644 core/common/src/types/options/key.rs
create mode 100644 core/common/src/utils/stream_key.rs
create mode 100644 core/common/tests/resource_options_fixtures.rs
create mode 100644 core/common/tests/stream_key_erasure.rs
create mode 100644 core/connectors/runtime/example_config/connectors/mqtt_source.toml
copy core/connectors/{sinks/postgres_sink => sources/mqtt_source}/Cargo.toml (76%)
create mode 100644 core/connectors/sources/mqtt_source/README.md
create mode 100644 core/connectors/sources/mqtt_source/config.toml
create mode 100644 core/connectors/sources/mqtt_source/src/driver.rs
create mode 100644 core/connectors/sources/mqtt_source/src/lib.rs
create mode 100644 core/integration/src/harness/peer_relay.rs
create mode 100644 core/integration/tests/cluster/root_credentials.rs
create mode 100644 core/integration/tests/cluster/stream_encryption.rs
create mode 100644 core/integration/tests/cluster/stream_key_rotation.rs
create mode 100644 core/integration/tests/connectors/fixtures/mqtt/container.rs
create mode 100644 core/integration/tests/connectors/fixtures/mqtt/mod.rs
create mode 100644 core/integration/tests/connectors/fixtures/mqtt/publisher.rs
copy core/integration/tests/connectors/{s3 => mqtt}/mod.rs (97%)
create mode 100644 core/integration/tests/connectors/mqtt/mqtt_source.rs
copy core/integration/tests/connectors/{doris/sink.toml => mqtt/source.toml} (94%)
copy .claude/skills/connector-review/agents/openai.yaml => core/integration/tests/server/shared_jwt_secrets.toml (72%)
create mode 100644 core/metadata/src/impls/placement.rs
create mode 100644 core/partitions/src/stream_keyring.rs
create mode 100644 core/partitions/src/wal_storage.rs
delete mode 100644 core/sdk/src/driver/poll_router.rs
delete mode 100644 core/sdk/src/leader_aware.rs
create mode 100644 core/sdk/src/session_owner/pending.rs
create mode 100644 core/server/src/dispatch/segment_delete.rs
create mode 100644 core/server/src/http/relay_proof.rs
create mode 100644 core/server/src/stream_key_rewrapper.rs
create mode 100644 core/server/src/stream_keys.rs
create mode 100644 core/shard/src/primary_rebalance.rs
create mode 100644 core/shard/src/primary_rebalance/tests.rs
create mode 100644 core/simulator/src/partition_wal.rs
copy core/simulator/src/workload/ops/{create_stream.rs => create_keyed_stream.rs} (82%)
copy core/simulator/src/workload/ops/{store_consumer_offset.rs => poll_messages.rs} (53%)
create mode 100644 core/simulator/src/workload/readback.rs
create mode 100644 core/simulator/tests/lifecycle_seeds.rs
create mode 100644 foreign/cpp/tests/e2e/resource_options.cpp
create mode 100644 foreign/cpp/tests/fixtures/resource_options.json
create mode 100644 foreign/cpp/tests/unit/resource_options.cpp
create mode 100644 foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/ResourceOptionsSteps.cs
create mode 100644 foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/SessionContractSteps.cs
create mode 100644 foreign/csharp/Iggy_SDK.Tests.BDD/xunit.runner.json
delete mode 100644 foreign/csharp/Iggy_SDK/Contracts/Http/Auth/UpdateUserRequest.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/Http/OptionInputs.cs
delete mode 100644 foreign/csharp/Iggy_SDK/Contracts/Http/UpdateStreamRequest.cs
delete mode 100644 foreign/csharp/Iggy_SDK/Contracts/Http/UpdateTopicRequest.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/OptionKeys.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/OptionValues.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/OptionsPatch.cs
copy foreign/csharp/Iggy_SDK/Contracts/{ClusterNodeStatus.cs => StreamOptionKey.cs} (55%)
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/StreamOptions.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/StreamUpdate.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/TopicOptionKey.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/TopicUpdate.cs
copy foreign/csharp/Iggy_SDK/Contracts/{ClusterNodeRole.cs => UserOptionKey.cs} (70%)
copy foreign/csharp/Iggy_SDK/Contracts/{Auth/PersonalAccessTokenResponse.cs => UserOptions.cs} (54%)
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/UserUpdate.cs
create mode 100644 foreign/csharp/Iggy_SDK/Encryption/EncryptionKeys.cs
copy foreign/csharp/Iggy_SDK/Enums/{Protocol.cs => PartitionResizePolicy.cs} (74%)
copy foreign/csharp/Iggy_SDK/Enums/{UserStatus.cs => StreamEncryptionSource.cs} (68%)
copy foreign/csharp/Iggy_SDK/Exceptions/{NotConnectedException.cs => VsrLaneBlockedException.cs} (71%)
copy foreign/csharp/Iggy_SDK/Exceptions/{InvalidBaseAddressException.cs => VsrOperationNotRetainedException.cs} (60%)
create mode 100644 foreign/csharp/Iggy_SDK/IggyClient/Implementations/TcpMessageStream.ReplicaLinks.cs
create mode 100644 foreign/csharp/Iggy_SDK/JsonConverters/RedactedOptionsConverter.cs
create mode 100644 foreign/csharp/Iggy_SDK/Vsr/MutationLanes.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/ConsumerTests/PartitionIncarnationTests.Disposal.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/ConsumerTests/PollFailureTests.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/Fixtures/resource_options.json
create mode 100644 foreign/csharp/Iggy_SDK_Tests/MapperTests/ResourceOptionsTests.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/VsrTests/MutationLaneTests.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/VsrTests/NativeRecoveryTests.SignIn.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/VsrTests/NativeRecoveryTests.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/VsrTests/ReplicaLinkTests.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/VsrTests/VsrMultiplexingTests.cs
create mode 100644 foreign/go/client/example_resource_options_test.go
create mode 100644 foreign/go/client/tcp/tcp_driver.go
create mode 100644 foreign/go/client/tcp/tcp_driver_test.go
create mode 100644 foreign/go/client/tcp/tcp_link.go
create mode 100644 foreign/go/client/tcp/tcp_link_test.go
create mode 100644 foreign/go/client/tcp/tcp_pending.go
create mode 100644 foreign/go/client/tcp/tcp_replicas.go
create mode 100644 foreign/go/client/tcp/tcp_replicas_test.go
create mode 100644 foreign/go/contracts/option_diagnostics.go
create mode 100644 foreign/go/contracts/resource_options_test.go
create mode 100644 foreign/go/contracts/stream_options.go
create mode 100644 foreign/go/contracts/testdata/resource_options.json
create mode 100644 foreign/go/contracts/user_options.go
create mode 100644 foreign/go/internal/command/access_token_test.go
create mode 100644 foreign/go/internal/command/update_resource.go
create mode 100644 foreign/go/internal/command/update_resource_test.go
create mode 100644 foreign/go/tests/e2e_personal_access_token_test.go
create mode 100644 foreign/go/tests/e2e_resource_options_test.go
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/ConnectionHeartbeat.java
copy foreign/java/java-sdk/src/main/java/org/apache/iggy/{personalaccesstoken/PersonalAccessTokenInfo.java => client/async/tcp/CredentialsListener.java} (78%)
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/PoolChannelHandler.java
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/SessionLogin.java
copy foreign/java/java-sdk/src/main/java/org/apache/iggy/client/{ConnectionInfo.java => async/tcp/TransientFailoverHandler.java} (60%)
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/UserPatchCredentials.java
copy foreign/java/java-sdk/src/main/java/org/apache/iggy/{message/MessageId.java => client/async/tcp/VsrExchange.java} (57%)
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/client/blocking/http/HttpOptionValue.java
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/config/TcpConnectionString.java
copy foreign/java/java-sdk/src/{test/java/org/apache/iggy/exception/IggyNotConnectedExceptionTest.java => main/java/org/apache/iggy/exception/IggyOperationException.java} (56%)
copy foreign/java/{bench/src/main/java/org/apache/iggy/bench/common/enums/GroupKind.java => java-sdk/src/main/java/org/apache/iggy/stream/EncryptionKeySource.java} (52%)
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/stream/EncryptionKeys.java
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/stream/EncryptionProjection.java
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/stream/StreamOptionKey.java
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/stream/StreamOptions.java
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/stream/StreamUpdate.java
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/system/OptionKey.java
copy foreign/java/java-sdk/src/main/java/org/apache/iggy/topic/{Durability.java => PartitionResizePolicy.java} (83%)
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/topic/TopicOptionKey.java
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/topic/TopicSettings.java
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/topic/TopicUpdate.java
copy foreign/java/{bench/src/main/java/org/apache/iggy/bench/common/enums/ActorKind.java => java-sdk/src/main/java/org/apache/iggy/user/UserOptionKey.java} (63%)
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/user/UserOptions.java
create mode 100644 foreign/java/java-sdk/src/main/java/org/apache/iggy/user/UserUpdate.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/ProtocolParityTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/ResourceOptionsFixture.java
copy foreign/java/java-sdk/src/test/java/org/apache/iggy/{exception/IggyConnectionExceptionTest.java => RustSources.java} (52%)
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/ResourceOptionsTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientBuilderConnectionStringTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientCredentialChangeTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientFailoverSignInTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientLockOrderTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientLostLinkReplayTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientNamespaceMissTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientPartitionWriteTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientRecoveryTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientSessionRulesTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/vsr/ConsensusSessionTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/vsr/VsrOperationTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/HttpOptionValueTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/InternalHttpClientLoggingTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/config/TcpConnectionStringTest.java
create mode 100644 foreign/java/java-sdk/src/test/java/org/apache/iggy/serde/ResourceOptionsTest.java
create mode 100644 foreign/java/java-sdk/src/test/resources/resource_options.json
create mode 100644 foreign/node/src/bdd/resource-options.ts
create mode 100644 foreign/node/src/bdd/session.ts
create mode 100644 foreign/node/src/client/client.operation.test.ts
create mode 100644 foreign/node/src/client/client.operation.ts
copy foreign/node/src/e2e/{test-client.utils.ts => resource-options.e2e.ts} (64%)
create mode 100644 foreign/node/src/e2e/resource-options.suite.ts
create mode 100644 foreign/node/src/wire/fixtures/resource_options.json
create mode 100644 foreign/node/src/wire/stream/stream-options.test.ts
create mode 100644 foreign/node/src/wire/stream/stream-options.ts
create mode 100644 foreign/node/src/wire/system/update-resource.command.test.ts
create mode 100644 foreign/node/src/wire/system/update-resource.command.ts
create mode 100644 foreign/php/src/options.rs
create mode 100644 foreign/php/src/sensitive_parameters.rs
create mode 100644 foreign/php/tests/ResourceOptionsTest.php
create mode 100644 foreign/php/tests/SensitiveParameterTest.php
create mode 100644 foreign/php/tests/fixtures/resource_options.json
create mode 100644 foreign/python/src/resource_options.rs
create mode 100644 foreign/python/tests/fixtures/resource_options.json
create mode 100644 foreign/python/tests/test_cleanup.py
create mode 100644 foreign/python/tests/test_resource_options.py
create mode 100644 foreign/swift/Package.resolved
create mode 100644 foreign/swift/Sources/Iggy/Client/ClientConfiguration.swift
create mode 100644 foreign/swift/Sources/Iggy/Client/ClientCore.swift
create mode 100644 foreign/swift/Sources/Iggy/Client/ConsumerGroupState.swift
create mode 100644 foreign/swift/Sources/Iggy/Client/IggyClient+Messages.swift
create mode 100644 foreign/swift/Sources/Iggy/Client/IggyClient+Resources.swift
create mode 100644 foreign/swift/Sources/Iggy/Client/IggyClient.swift
create mode 100644 foreign/swift/Sources/Iggy/Client/PollRouter.swift
create mode 100644 foreign/swift/Sources/Iggy/Models/EncryptionKey.swift
create mode 100644 foreign/swift/Sources/Iggy/Models/StreamOptions.swift
create mode 100644 foreign/swift/Sources/Iggy/Models/UserOptions.swift
create mode 100644 foreign/swift/Sources/Iggy/Transport/Endpoint.swift
create mode 100644 foreign/swift/Sources/Iggy/Transport/TCPConnection.swift
create mode 100644 foreign/swift/Sources/Iggy/Transport/TLSOptions.swift
create mode 100644 foreign/swift/Sources/Iggy/Utilities/AsyncMutex.swift
create mode 100644 foreign/swift/Tests/IggyE2ETests/ClientE2ETests.swift
create mode 100644 foreign/swift/Tests/IggyE2ETests/ResourceOptionsE2ETests.swift
create mode 100644 foreign/swift/Tests/IggyE2ETests/Support/E2EEnvironment.swift
create mode 100644 foreign/swift/Tests/IggyTests/ClientTransportTests.swift
create mode 100644 foreign/swift/Tests/IggyTests/ConcurrencyTests.swift
create mode 100644 foreign/swift/Tests/IggyTests/ConfigurationTests.swift
create mode 100644 foreign/swift/Tests/IggyTests/ConsumerGroupStateTests.swift
create mode 100644 foreign/swift/Tests/IggyTests/Fixtures/resource_options.json
create mode 100644 foreign/swift/Tests/IggyTests/MessagingTests.swift
create mode 100644 foreign/swift/Tests/IggyTests/ResourceOptionsTests.swift
create mode 100644 foreign/swift/Tests/IggyTests/Support/FakeVSRServer.swift
create mode 100644 foreign/swift/Tests/IggyTests/Support/ResourceOptionsFixture.swift
create mode 100644 foreign/swift/Tests/IggyTests/Support/TestHelpers.swift
create mode 100644 gateways/kafka/src/bridge/iggy_bridge/cluster_id.rs
create mode 100644 gateways/kafka/src/bridge/iggy_bridge/group_index.rs
create mode 100644 gateways/kafka/src/cluster_id.rs
create mode 100644 gateways/kafka/src/group/offset_work.rs
create mode 100644 gateways/kafka/src/listener.rs
create mode 100644 gateways/kafka/src/protocol/auto_topic_creation.rs
create mode 100644 gateways/kafka/src/protocol/handlers/create_partitions.rs
create mode 100644 gateways/kafka/src/protocol/handlers/delete_groups.rs
create mode 100644 gateways/kafka/src/protocol/handlers/describe_cluster.rs
copy gateways/kafka/src/protocol/handlers/{alter_configs.rs => incremental_alter_configs.rs} (62%)
create mode 100644 gateways/kafka/src/protocol/handlers/offset_delete.rs
create mode 100644 gateways/kafka/src/tls/identity.rs
create mode 100644 gateways/kafka/src/tls/mod.rs
create mode 100644 gateways/kafka/tests/cluster_id_real_bridge_tests.rs
create mode 100644 gateways/kafka/tests/common/certs.rs
create mode 100644 gateways/kafka/tests/create_partitions_real_bridge_tests.rs
create mode 100644 gateways/kafka/tests/java/OffsetsForTimesProbe.java
create mode 100644 gateways/kafka/tests/offset_groups_real_bridge_tests.rs
create mode 100644 gateways/kafka/tests/tls_listener_tests.rs
copy scripts/{dashboard/build_release.sh => ci/restore-runtime.sh} (60%)
create mode 100644 scripts/ci/test-runtime-artifacts.py
create mode 100644 web/src/lib/api/resourceOptions.test.mjs
create mode 100644 web/src/lib/api/resourceOptions.ts