This is an automated email from the ASF dual-hosted git repository.
hubcio pushed a change to branch fix/bench-warmup-pacing
in repository https://gitbox.apache.org/repos/asf/iggy.git
from e1ae50794 fix(bench): pace warmup and rewind consumers
add 56e109a58 feat(consensus): persist retry receipts and shared sessions
(#4387)
add 07d2a2136 chore(deps): Bump the github-actions group with 3 updates
(#4426)
add 651ccea4e chore(deps): Bump postcss-selector-parser from 7.1.4 to
7.1.6 in /web (#4425)
add 50a0db603 chore(deps): Bump mako from 1.4.1 to 1.4.2 in /bdd/python
(#4423)
add 0ce152402 chore(deps): Bump joi from 17.13.7 to 17.13.8 in /web (#4422)
add a263a813d fix(ci): skip unaffected license checks (#4428)
add 4843593b1 chore(deps): Bump source-map-js from 1.2.1 to 1.2.2 in /web
(#4424)
add 2c1f70b53 chore(repo): bump Rust toolchain to 1.99.0 (#4430)
add 5da16eba2 chore(deps): Bump the java group across 3 directories with 6
updates (#4427)
add 43fb44364 feat(node): wire up snapshot command in system client (#4389)
add af706e68e perf(partitions): keep shard traffic moving during file I/O
(#4311)
add 789c2e045 feat(gateways): answer OffsetCommit and OffsetFetch (#4415)
add 09420cf4d test(gateways): cover Kafka consumer groups end to end
(#4431)
add 2eac34938 test(server): expect per-topic size and message count on
/metrics (#4475)
add 875699426 ci(repo): move jobs off ubuntu-latest to cut runner queue
time (#4479)
add 5753d4958 refactor!: remove the purge API and its server machinery
(#4477)
add 5ded8ff62 feat(configs): list configuration environment variables
(#4350)
add b7576e580 chore(deps): Bump cucumber-cpp from 0.8.0.bcr.1 to 0.9.0 in
/foreign/cpp in the cpp group across 1 directory (#4469)
add 69a1bcc16 chore(deps): Bump the node group across 1 directory with 12
updates (#4470)
add ed7e251dc chore(deps): Bump the csharp group with 2 updates (#4406)
add 8efc3e1e6 chore(deps): Bump the python group across 3 directories with
3 updates (#4435)
add 9536916bd feat(csharp): implement connection string parsing (#4363)
add 89921bf48 docs(repo): add the RFC process and template (#4385)
add b4e357cc9 chore(deps): Bump the web group across 1 directory with 8
updates (#4468)
add 09183950a feat(connectors): add Google BigQuery sink connector (#4394)
add 7da163362 fix(sdk): removes topic_id and stream_id from public Stream
API (#4249)
add 46caa7c82 fix(connectors): honor Retry-After on every retried status
(#4192)
add a029d4db4 fix(cli): fix help text of user permissions -g and -s (#4484)
add 5f34dbc01 feat(gateways): Kafka Gateway add DescribeConfigs and
AlterConfigs APIs (#4398)
add 60d621ad2 test(integration): add chaos monkey to catch data loss under
node kills (#4407)
add bbdc54ccc fix(cli): resolve server address for ws transport (#4482)
add c5f21c0c2 perf(connectors): drain field_mappings instead of
clone-then-clear (#4362)
add 1cd19ce86 perf(java): build header length error text only on failure
(#4382)
add 0b82cd666 feat(partitions)!: fence ownership and history changes
(#4456)
add 4dec2a985 feat(gateways): Kafka Gateway add DeleteTopics API Key that
deletes the Iggy topic only (#4400)
add 72e46049d docs: welcome PR reviews from contributors (#4494)
add d3e95f506 chore(python): require Python 3.11 across SDK and CI (#4421)
add 8ded54789 fix(sdk): keep an explicit disconnect until the next connect
(#4388)
add 8f83f011d feat(python): expose delete_segments on IggyClient (#4357)
add 7a08127a8 feat(gateways): Kafka Gateway add DescribeGroups and
ListGroups Keys (#4401)
add 84d3b6766 feat(sdk): read offsets of consumer group members over the
HTTP API (#4348)
add 7fa32654d fix(connectors): make source NACK retries configurable and
observable (#4269)
add 789dfe6b5 feat(server): expose per-topic size and message count on
/metrics (#4480)
add 2a1367758 Merge branch 'master' into fix/bench-warmup-pacing
No new revisions were added by this update.
Summary of changes:
.claude/skills/connector-runtime/SKILL.md | 8 +-
.claude/skills/connector-sdk/SKILL.md | 2 +-
.claude/skills/connector-source/SKILL.md | 23 +-
.config/nextest.toml | 10 +
.devcontainer/Dockerfile | 2 +-
.github/actions/php/pre-merge/action.yml | 16 +-
.../actions/python-maturin/pre-merge/action.yml | 2 +-
.github/actions/rust/pre-merge/action.yml | 9 +-
.github/actions/utils/setup-swift/action.yml | 55 +-
.github/workflows/_build_python_wheels.yml | 102 +-
.github/workflows/_build_rust_artifacts.yml | 17 +-
.github/workflows/_common.yml | 42 +-
.github/workflows/_detect.yml | 29 +-
.github/workflows/_publish_rust_crates.yml | 2 +-
.github/workflows/_test.yml | 6 +-
.github/workflows/_test_bdd.yml | 2 +-
.github/workflows/_test_examples.yml | 16 +-
.github/workflows/codecov-notify.yml | 2 +-
.github/workflows/coverage-baseline.yml | 26 +-
.github/workflows/edge-release.yml | 2 +-
.github/workflows/issue-labeler-assigner.yml | 2 +-
.github/workflows/post-merge.yml | 4 +-
.github/workflows/pr-skill-review-post.yml | 2 +-
.github/workflows/pr-skill-review-run.yml | 2 +-
.github/workflows/pr-title.yml | 3 +-
.github/workflows/pr-triage-apply.yml | 2 +-
.github/workflows/pr-triage-collect.yml | 2 +-
.github/workflows/pre-merge.yml | 5 +-
.github/workflows/publish.yml | 20 +-
.github/workflows/stale-prs-unmark-on-activity.yml | 2 +-
.github/workflows/stale-prs-unmark.yml | 2 +-
.github/workflows/stale-prs.yml | 2 +-
.pr4372-comments.json | 0
CONTRIBUTING.md | 18 +
Cargo.lock | 158 +-
Cargo.toml | 17 +-
Dockerfile | 2 +-
bdd/go/tests/tcp_test/consumers_steps.go | 17 +-
bdd/go/tests/tcp_test/messages_feature_send.go | 4 +-
bdd/java/Dockerfile | 2 +-
bdd/java/build.gradle.kts | 6 +-
bdd/java/gradle/wrapper/gradle-wrapper.properties | 2 +-
bdd/java/gradlew | 4 +-
bdd/php/Dockerfile | 2 +-
bdd/python/.python-version | 2 +-
bdd/python/Dockerfile | 2 +-
bdd/python/pylock.toml | 111 +-
bdd/python/pyproject.toml | 2 +-
bdd/python/uv.lock | 127 +-
bdd/rust/Dockerfile | 2 +-
core/ai/mcp/Cargo.toml | 1 +
core/ai/mcp/Dockerfile | 2 +-
core/ai/mcp/README.md | 6 +-
core/ai/mcp/src/error.rs | 2 +
core/ai/mcp/src/main.rs | 34 +-
core/ai/mcp/src/service/mod.rs | 25 -
core/ai/mcp/src/service/requests.rs | 15 -
core/bench/dashboard/frontend/src/api/mod.rs | 9 +-
.../frontend/src/components/app_content.rs | 28 +-
.../frontend/src/components/chart/trend_chart.rs | 4 +-
.../frontend/src/components/layout/sidebar.rs | 4 +-
.../dashboard/frontend/src/state/benchmark.rs | 22 +-
core/bench/dashboard/server/Dockerfile | 2 +-
core/bench/report/Cargo.toml | 1 -
core/bench/report/src/types/hardware.rs | 2 +-
core/bench/src/actors/consumer/client/low_level.rs | 5 +-
core/bench/src/utils/client_factory.rs | 20 +-
core/binary_protocol/Cargo.toml | 1 +
core/binary_protocol/src/codes.rs | 15 +-
core/binary_protocol/src/consensus/command.rs | 8 +-
.../src/consensus/consumer_session.rs | 32 +-
core/binary_protocol/src/consensus/error.rs | 8 +-
core/binary_protocol/src/consensus/header.rs | 210 +-
core/binary_protocol/src/consensus/operation.rs | 83 +-
core/binary_protocol/src/consensus/request.rs | 4 +-
core/binary_protocol/src/dispatch.rs | 80 +-
core/binary_protocol/src/framing.rs | 6 +-
core/binary_protocol/src/lib.rs | 1 +
core/binary_protocol/src/primitives/mod.rs | 1 +
.../src/primitives/partition_history.rs | 123 +
.../src/requests/consumer_offsets/mod.rs | 19 +
.../src/requests/messages/get_send_context.rs | 90 +
core/binary_protocol/src/requests/messages/mod.rs | 2 +
.../partitions/install_consumer_group_owner.rs | 138 +
.../binary_protocol/src/requests/partitions/mod.rs | 6 +
.../partitions/retire_consumer_group_owners.rs | 151 +
.../partitions/transition_partition_history.rs | 107 +
core/binary_protocol/src/requests/streams/mod.rs | 2 -
.../src/requests/streams/purge_stream.rs | 60 -
.../src/requests/system/attach_consumer_session.rs | 87 -
.../src/requests/system/bind_session.rs | 155 +
.../src/requests/system/finalize_session.rs | 96 +
core/binary_protocol/src/requests/system/mod.rs | 8 +-
.../src/requests/system/retire_sessions.rs | 117 +
core/binary_protocol/src/requests/topics/mod.rs | 2 -
.../src/requests/topics/purge_topic.rs | 86 -
.../src/requests/users/login_register.rs | 60 +-
.../src/requests/users/login_register_with_pat.rs | 17 +-
.../src/responses/messages/poll_messages.rs | 36 +-
.../src/responses/messages/poll_routing.rs | 22 +-
.../src/responses/messages/send_messages.rs | 14 +-
core/binary_protocol/src/responses/streams/mod.rs | 2 -
.../src/responses/streams/purge_stream.rs | 19 -
.../src/responses/topics/get_topic.rs | 18 +-
core/binary_protocol/src/responses/topics/mod.rs | 2 -
.../src/responses/topics/purge_topic.rs | 19 -
core/binary_protocol/src/version.rs | 145 +-
core/cli/src/args/stream.rs | 18 -
core/cli/src/args/topic.rs | 27 -
core/cli/src/args/user.rs | 20 +-
core/cli/src/commands/binary_streams/mod.rs | 1 -
.../src/commands/binary_streams/purge_stream.rs | 59 -
core/cli/src/commands/binary_topics/mod.rs | 1 -
core/cli/src/commands/binary_topics/purge_topic.rs | 67 -
core/cli/src/credentials.rs | 42 +-
core/cli/src/error.rs | 6 -
core/cli/src/main.rs | 36 +-
core/common/Cargo.toml | 2 +-
core/common/src/consumer_group_client_state.rs | 267 +-
core/common/src/error/iggy_error.rs | 24 +
.../consumer_offsets/delete_consumer_offset.rs | 3 +
.../http/consumer_offsets/store_consumer_offset.rs | 4 +-
core/common/src/http/messages/send_messages.rs | 95 +-
core/common/src/http/streams/mod.rs | 1 -
core/common/src/http/streams/purge_stream.rs | 37 -
core/common/src/http/topics/mod.rs | 1 -
core/common/src/http/topics/purge_topic.rs | 41 -
core/common/src/lib.rs | 1 +
.../src/traits/binary_impls/consumer_offsets.rs | 30 +-
core/common/src/traits/binary_impls/messages.rs | 135 +-
core/common/src/traits/binary_impls/mod.rs | 3 +-
core/common/src/traits/binary_impls/partitions.rs | 2 +
.../traits/binary_impls/personal_access_tokens.rs | 25 +-
core/common/src/traits/binary_impls/streams.rs | 17 +-
core/common/src/traits/binary_impls/topics.rs | 32 +-
core/common/src/traits/binary_impls/users.rs | 25 +-
core/common/src/traits/binary_transport.rs | 407 +-
core/common/src/traits/client.rs | 9 +-
core/common/src/traits/consumer_offset_client.rs | 28 +-
core/common/src/traits/message_client.rs | 11 +
core/common/src/traits/mod.rs | 1 +
core/common/src/traits/partition_client.rs | 7 +
core/common/src/traits/stream_client.rs | 4 -
core/common/src/traits/topic_client.rs | 8 -
core/common/src/types/args/mod.rs | 60 +-
core/common/src/types/consumer/consumer_kind.rs | 7 +-
.../src/types/consumer/consumer_offset_info.rs | 12 +
core/common/src/types/message/polled_messages.rs | 45 +-
core/common/src/types/message/polling_strategy.rs | 21 +-
core/common/src/types/options/mod.rs | 129 +-
.../{durability.rs => partition_resize_policy.rs} | 25 +-
core/common/src/types/partition/mod.rs | 6 +
core/common/src/types/streaming_stats.rs | 4 +-
core/common/src/utils/topic_size.rs | 32 +
core/common/src/wire_conversions.rs | 1 +
core/configs/src/common/validators.rs | 42 +-
core/configs/src/configs_impl/env_listing.rs | 102 +
core/configs/src/configs_impl/env_mapping.rs | 111 +
core/configs/src/configs_impl/file_provider.rs | 23 +-
core/configs/src/configs_impl/mod.rs | 9 +-
.../configs/src/configs_impl/typed_env_provider.rs | 41 +-
core/configs/src/lib.rs | 5 +-
core/configs/src/server_config/cluster.rs | 22 +-
core/configs/src/server_config/metadata.rs | 12 +-
core/configs/src/server_config/partition.rs | 11 +-
core/configs/src/server_config/server.rs | 68 +-
core/configs/src/server_config/sharding.rs | 79 +-
core/configs_derive/src/config_env.rs | 225 +-
core/connectors/runtime/Dockerfile | 2 +-
core/connectors/runtime/README.md | 4 +
.../example_config/connectors/bigquery_sink.toml | 63 +
core/connectors/runtime/src/configs/connectors.rs | 2 +-
.../src/configs/connectors/local_provider.rs | 27 +-
core/connectors/runtime/src/error.rs | 4 +
core/connectors/runtime/src/main.rs | 114 +-
core/connectors/runtime/src/manager/source.rs | 128 +-
core/connectors/runtime/src/source.rs | 523 +-
core/connectors/sdk/Cargo.toml | 2 +-
core/connectors/sdk/README.md | 16 +-
core/connectors/sdk/src/convert.rs | 287 +-
core/connectors/sdk/src/decoders/avro.rs | 35 +-
core/connectors/sdk/src/decoders/flatbuffer.rs | 35 +-
core/connectors/sdk/src/decoders/proto.rs | 64 +-
core/connectors/sdk/src/encoders/avro.rs | 54 +-
core/connectors/sdk/src/encoders/flatbuffer.rs | 48 +-
core/connectors/sdk/src/encoders/proto.rs | 91 +-
core/connectors/sdk/src/lib.rs | 9 +
core/connectors/sdk/src/retry.rs | 195 +-
core/connectors/sdk/src/source.rs | 1046 +-
core/connectors/sdk/src/transforms/avro_convert.rs | 36 +-
.../connectors/sdk/src/transforms/proto_convert.rs | 31 +-
.../connectors/sdk/tests/flatbuffer_integration.rs | 16 +
core/connectors/sinks/README.md | 1 +
.../{influxdb_sink => bigquery_sink}/Cargo.toml | 26 +-
core/connectors/sinks/bigquery_sink/README.md | 263 +
core/connectors/sinks/bigquery_sink/config.toml | 63 +
core/connectors/sinks/bigquery_sink/src/client.rs | 445 +
core/connectors/sinks/bigquery_sink/src/encode.rs | 2129 ++
core/connectors/sinks/bigquery_sink/src/error.rs | 210 +
core/connectors/sinks/bigquery_sink/src/lib.rs | 534 +
core/connectors/sinks/bigquery_sink/src/schema.rs | 866 +
core/connectors/sinks/bigquery_sink/src/sink.rs | 407 +
.../sinks/bigquery_sink/tests/bigquery_sink.rs | 566 +
.../sinks/bigquery_sink/tests/common/mod.rs | 393 +
core/connectors/sinks/influxdb_sink/README.md | 5 +-
.../connectors/sinks/influxdb_sink/dependencies.md | 2 +-
core/connectors/sinks/quickwit_sink/README.md | 4 +-
core/connectors/sources/http_source/README.md | 29 +-
core/connectors/sources/http_source/config.toml | 3 +
core/connectors/sources/http_source/src/lib.rs | 244 +-
.../sources/http_source/src/management.rs | 41 +-
core/connectors/sources/http_source/src/server.rs | 180 +-
core/connectors/sources/influxdb_source/README.md | 4 +-
.../sources/influxdb_source/dependencies.md | 2 +-
core/consensus/Cargo.toml | 1 +
core/consensus/src/client_table.rs | 3844 +-
core/consensus/src/impls.rs | 460 +-
core/consensus/src/lib.rs | 23 +-
core/consensus/src/metadata_helpers.rs | 421 +-
core/consensus/src/observability.rs | 8 +-
core/consensus/src/plane_helpers.rs | 152 +-
core/consensus/src/state_manifest.rs | 5 +-
core/integration/src/harness/config/resolve.rs | 15 +-
core/integration/src/harness/config/server.rs | 10 +
core/integration/src/harness/context.rs | 16 +-
core/integration/src/harness/disk.rs | 177 +-
core/integration/src/harness/handle/server.rs | 223 +-
core/integration/src/harness/helpers.rs | 59 +-
core/integration/src/harness/mod.rs | 1 +
core/integration/tests/cli/common/mod.rs | 41 +
core/integration/tests/cli/general/mod.rs | 1 +
...ng_credentials.rs => test_unknown_transport.rs} | 34 +-
.../test_pat_create_command.rs | 17 +-
.../test_pat_delete_command.rs | 15 +-
core/integration/tests/cli/stream/mod.rs | 1 -
.../tests/cli/stream/test_stream_help_command.rs | 1 -
.../tests/cli/stream/test_stream_purge_command.rs | 223 -
core/integration/tests/cli/system/mod.rs | 2 +
.../tests/cli/system/test_cli_session_scenario.rs | 42 +-
.../tests/cli/system/test_me_command.rs | 36 +-
...st_logout_cmd.rs => test_session_status_cmd.rs} | 49 +-
core/integration/tests/cli/topic/mod.rs | 1 -
.../tests/cli/topic/test_topic_help_command.rs | 1 -
.../tests/cli/topic/test_topic_purge_command.rs | 295 -
.../cli/user/test_user_permissions_command.rs | 59 +-
core/integration/tests/cluster/chaos_monkey.rs | 2614 ++
.../tests/cluster/chaos_monkey/report.rs | 151 +
.../tests/cluster/client_table_adversarial.rs | 125 +-
.../tests/cluster/client_table_restart.rs | 346 +-
.../tests/cluster/consumer_offset_quota.rs | 85 +-
core/integration/tests/cluster/crash_durability.rs | 56 +
.../tests/cluster/crash_recovery_corruption.rs | 30 +-
.../tests/cluster/fast_primary_rejoin.rs | 3 +
core/integration/tests/cluster/mod.rs | 1 +
core/integration/tests/cluster/partition_dedup.rs | 701 +-
.../tests/cluster/partition_primary_routing.rs | 210 +-
.../tests/cluster/partition_state_transfer.rs | 2 +
core/integration/tests/config_env_listing/mod.rs | 312 +
.../tests/connectors/fixtures/influxdb/sink_v3.rs | 11 +-
.../tests/connectors/runtime/http_state.rs | 47 +-
.../tests/data_integrity/storage_compat.rs | 288 +-
.../verify_consumer_group_partition_assignment.rs | 304 +-
core/integration/tests/mcp/mod.rs | 24 +-
core/integration/tests/mod.rs | 28 +-
core/integration/tests/sdk/client_lifecycle.rs | 28 +-
.../tests/sdk/consumer_group_membership.rs | 145 +-
core/integration/tests/sdk/consumer_offset.rs | 299 +-
core/integration/tests/sdk/mod.rs | 1 +
core/integration/tests/sdk/options.rs | 103 +
core/integration/tests/sdk/producer/mod.rs | 52 +
core/integration/tests/sdk/protocol_version.rs | 25 +
core/integration/tests/sdk/stream_builder.rs | 70 +
core/integration/tests/server/cg.rs | 12 +-
.../tests/server/consumer_offset_quota_vsr.rs | 5 +
.../server/{purge_delete.rs => delete_segments.rs} | 22 +-
.../tests/server/descriptor_exhaustion_vsr.rs | 71 +-
core/integration/tests/server/http_rbac.rs | 92 +
core/integration/tests/server/http_vsr.rs | 220 +-
core/integration/tests/server/mod.rs | 13 +-
core/integration/tests/server/purge_vsr.rs | 142 -
core/integration/tests/server/raw_tcp.rs | 40 +-
.../server/scenarios/authentication_scenario.rs | 54 +-
...umer_group_auto_commit_reconnection_scenario.rs | 2 +
...er_group_new_messages_after_restart_scenario.rs | 1 +
...ete_scenario.rs => delete_segments_scenario.rs} | 464 -
.../scenarios/delete_stats_rollback_scenario.rs | 8 +-
.../scenarios/invalid_consumer_offset_scenario.rs | 15 +-
.../server/scenarios/log_rotation_scenario.rs | 5 +
core/integration/tests/server/scenarios/mod.rs | 15 +-
.../tests/server/scenarios/permissions_scenario.rs | 18 +-
.../scenarios/reconnect_after_restart_scenario.rs | 29 +-
.../stale_client_consumer_group_scenario.rs | 41 +-
.../scenarios/stream_size_validation_scenario.rs | 52 +-
.../tests/server/scenarios/system_scenario.rs | 88 +-
core/integration/tests/server/topic_metrics_vsr.rs | 274 +
core/integration/tests/server/unknown_code_vsr.rs | 136 +-
core/journal/src/durable_storage.rs | 57 +-
core/journal/src/file_storage.rs | 37 +-
core/journal/src/local_gate.rs | 75 +-
core/journal/src/partition_journal.rs | 350 +-
core/journal/src/partition_journal/segments.rs | 142 +-
core/journal/src/prepare_journal.rs | 248 +-
core/journal/src/superblock.rs | 49 +-
core/message_bus/src/connection_cap.rs | 2 +-
core/message_bus/src/replica/auth.rs | 25 +-
core/message_bus/src/replica/handshake.rs | 230 +-
core/message_bus/tests/common/mod.rs | 2 +
core/message_bus/tests/head_of_line.rs | 47 +-
core/message_bus/tests/replica_auth_handshake.rs | 68 +
core/metadata/Cargo.toml | 4 +-
core/metadata/src/applied_frontier.rs | 37 +-
core/metadata/src/impls/metadata.rs | 2986 +-
core/metadata/src/impls/recovery.rs | 581 +-
.../src/permissioner/permissioner_rules/streams.rs | 4 -
.../src/permissioner/permissioner_rules/topics.rs | 9 -
core/metadata/src/stm/authz.rs | 45 +-
core/metadata/src/stm/consumer_group.rs | 1313 +-
core/metadata/src/stm/lifecycle.rs | 1671 +
core/metadata/src/stm/mod.rs | 40 +-
core/metadata/src/stm/mux.rs | 2 +-
core/metadata/src/stm/result.rs | 75 +-
core/metadata/src/stm/snapshot.rs | 158 +-
core/metadata/src/stm/stream.rs | 1172 +-
core/metadata/src/stm/user.rs | 37 +-
core/partitions/Cargo.toml | 1 -
core/partitions/src/consumer_offset_capacity.rs | 28 +-
core/partitions/src/iggy_index_writer.rs | 31 +-
core/partitions/src/iggy_partition.rs | 35432 ++++++++++++-------
core/partitions/src/iggy_partitions.rs | 281 +-
core/partitions/src/io.rs | 1582 +
core/partitions/src/journal.rs | 607 +-
core/partitions/src/lib.rs | 25 +-
core/partitions/src/log.rs | 28 +-
core/partitions/src/messages_writer.rs | 23 +-
core/partitions/src/offset_recovery.rs | 4 +-
core/partitions/src/offset_storage.rs | 519 +-
core/partitions/src/partition_storage.rs | 16 +-
core/partitions/src/persistence.rs | 348 +-
core/partitions/src/poll_plan.rs | 24 +-
core/partitions/src/segment_recovery.rs | 353 +-
core/partitions/src/state_transfer.rs | 3511 +-
core/partitions/src/types.rs | 13 +-
core/partitions/tests/consumer_offset_history.rs | 538 +-
core/sdk/Cargo.toml | 3 +
core/sdk/README.md | 13 +-
core/sdk/src/client_wrappers/binary_client.rs | 27 +-
.../binary_consumer_offset_client.rs | 38 +-
.../src/client_wrappers/binary_stream_client.rs | 10 -
.../sdk/src/client_wrappers/binary_topic_client.rs | 14 -
core/sdk/src/clients/binary_consumer_offset.rs | 16 +-
.../src/clients/binary_personal_access_tokens.rs | 4 +-
core/sdk/src/clients/binary_streams.rs | 4 -
core/sdk/src/clients/binary_topics.rs | 12 -
core/sdk/src/clients/binary_users.rs | 4 +-
core/sdk/src/clients/client.rs | 103 +-
core/sdk/src/clients/consumer.rs | 972 +-
core/sdk/src/clients/producer.rs | 214 +-
core/sdk/src/clients/producer_builder.rs | 25 +-
core/sdk/src/clients/producer_dispatcher.rs | 1 +
core/sdk/src/consumer_ext/consumer_message_ext.rs | 7 +-
core/sdk/src/http/consumer_groups.rs | 9 +-
core/sdk/src/http/consumer_offsets.rs | 113 +-
core/sdk/src/http/http_client.rs | 350 +-
core/sdk/src/http/messages.rs | 468 +-
core/sdk/src/http/mod.rs | 3 +
core/sdk/src/http/partitions.rs | 7 +-
.../get_streams.rs => sdk/src/http/path.rs} | 43 +-
core/sdk/src/http/scripted_server.rs | 232 +
core/sdk/src/http/segments.rs | 5 +-
core/sdk/src/http/streams.rs | 13 +-
core/sdk/src/http/topics.rs | 53 +-
core/sdk/src/lib.rs | 3 +-
core/sdk/src/poll_routing.rs | 579 +-
core/sdk/src/prelude.rs | 32 +-
core/sdk/src/quic/quic_client.rs | 942 +-
core/sdk/src/session.rs | 248 +-
.../stream_builder/build/build_iggy_producer.rs | 1 +
.../src/stream_builder/build/build_stream_topic.rs | 42 +-
.../stream_builder/config/config_iggy_consumer.rs | 58 +-
.../stream_builder/config/config_iggy_producer.rs | 77 +-
.../stream_builder/config/config_iggy_stream.rs | 32 +-
core/sdk/src/tcp/tcp_client.rs | 1237 +-
core/sdk/src/vsr.rs | 326 +-
core/sdk/src/websocket/websocket_client.rs | 1236 +-
core/server/Cargo.toml | 1 +
core/server/Dockerfile | 2 +-
core/server/README.md | 135 +-
core/server/config.toml | 69 +-
core/server/server.http | 8 -
core/server/src/args.rs | 39 +
core/server/src/boot/listeners.rs | 2 +
core/server/src/boot/mod.rs | 242 +-
core/server/src/boot/recovery.rs | 9 +-
core/server/src/boot/threads.rs | 16 +-
core/server/src/consumer_group.rs | 775 +-
core/server/src/consumer_group/lease.rs | 207 +-
core/server/src/consumer_group/liveness.rs | 1004 +-
core/server/src/dispatch/authz.rs | 19 +-
core/server/src/dispatch/failure.rs | 149 +-
core/server/src/dispatch/host.rs | 41 +-
core/server/src/dispatch/login_error.rs | 10 +-
core/server/src/dispatch/mod.rs | 720 +-
core/server/src/dispatch/partition.rs | 1001 +-
core/server/src/dispatch/reads.rs | 173 +-
core/server/src/dispatch/session_ops.rs | 313 +-
core/server/src/dispatch/submit.rs | 53 +-
core/server/src/dispatch/test_support.rs | 6 +
core/server/src/http.rs | 13 +-
core/server/src/http/admission.rs | 11 +-
core/server/src/http/error.rs | 23 +
core/server/src/http/extractor.rs | 1 +
core/server/src/http/handlers.rs | 447 +-
core/server/src/http/metrics.rs | 212 +-
core/server/src/http/session.rs | 246 +-
core/server/src/http/state.rs | 155 +-
core/server/src/http/submit.rs | 242 +-
core/server/src/http/wire.rs | 169 +-
core/server/src/lib.rs | 3 +
core/server/src/main.rs | 17 +-
core/server/src/partition_helpers.rs | 798 +-
core/server/src/partition_reconciler.rs | 1642 +-
core/server/src/reply_frame.rs | 82 +-
core/server/src/responses.rs | 39 +-
core/server/src/segment_cleaner.rs | 41 +-
core/server/src/server_error.rs | 32 +
core/server/src/session_manager.rs | 659 +-
core/server/src/sysinfo_printer.rs | 29 +-
core/server/src/sysinfo_probe.rs | 150 +-
core/server/src/wire.rs | 11 +-
core/server_common/src/consensus_message.rs | 45 +-
core/server_common/src/fs_utils.rs | 126 +-
core/server_common/src/iobuf.rs | 37 +-
core/server_common/src/poll.rs | 4 +-
core/server_common/src/segment_storage/mod.rs | 2 +-
core/server_common/src/sharding/mod.rs | 3 +
core/shard/Cargo.toml | 3 +
core/shard/src/builder.rs | 12 +
core/shard/src/lib.rs | 1248 +-
core/shard/src/metrics.rs | 133 +-
core/shard/src/partition_io.rs | 2964 ++
core/shard/src/poll.rs | 187 +-
core/shard/src/poll/completion.rs | 8 +-
core/shard/src/poll/completion_tests.rs | 1165 +-
core/shard/src/poll/test_support.rs | 128 +-
core/shard/src/poll/timeout_tests.rs | 66 +-
core/shard/src/router.rs | 371 +-
core/simulator/README.md | 5 +-
core/simulator/src/bin/workload-fuzz.rs | 13 -
core/simulator/src/client.rs | 112 +-
.../simulator/src/consumer_offset_history_tests.rs | 221 -
core/simulator/src/executor/time.rs | 4 +-
core/simulator/src/lib.rs | 832 +-
core/simulator/src/packet.rs | 3 +-
core/simulator/src/replica.rs | 42 +-
core/simulator/src/storage.rs | 2 +-
core/simulator/src/storage/bookmark_recovery.rs | 407 +
core/simulator/src/storage/purge.rs | 632 -
core/simulator/src/storage/tests.rs | 368 +-
core/simulator/src/workload/actions.rs | 4 +-
core/simulator/src/workload/invariants.rs | 2 +-
core/simulator/src/workload/mod.rs | 69 +-
.../src/workload/ops/create_consumer_group.rs | 14 +-
.../src/workload/ops/create_partitions.rs | 1 +
.../src/workload/ops/delete_partitions.rs | 1 +
core/simulator/src/workload/ops/mod.rs | 4 -
core/simulator/src/workload/ops/purge_stream.rs | 74 -
core/simulator/src/workload/ops/purge_topic.rs | 83 -
core/simulator/src/workload/ops/update_topic.rs | 2 +-
core/simulator/src/workload/options.rs | 6 +-
core/simulator/src/workload/oracle.rs | 38 +-
core/simulator/src/workload/state_checker.rs | 1 +
examples/java/build.gradle.kts | 2 +-
.../java/gradle/wrapper/gradle-wrapper.properties | 2 +-
examples/java/gradlew | 4 +-
.../apache/iggy/examples/ConsumerOffsetTest.java | 11 +-
.../iggy/examples/MultiTenantAccessTest.java | 4 +-
examples/python/.python-version | 2 +-
examples/python/README.md | 2 +-
examples/python/message-headers/common.py | 4 +-
examples/python/pylock.toml | 66 +-
examples/python/pyproject.toml | 6 +-
examples/python/uv.lock | 70 +-
examples/rust/src/shared/system.rs | 10 +-
.../rust/src/stream-builder/stream-basic/main.rs | 3 +-
.../stream-builder/stream-consumer-config/main.rs | 6 +-
.../stream-builder/stream-producer-config/main.rs | 6 +-
foreign/cpp/MODULE.bazel | 4 +-
foreign/cpp/MODULE.bazel.lock | 4 +-
foreign/cpp/include/iggy.hpp | 143 +-
foreign/cpp/src/client.cpp | 20 +-
foreign/cpp/src/client.rs | 217 +-
foreign/cpp/src/lib.rs | 55 +-
foreign/cpp/src/type_conversion.rs | 81 +-
foreign/cpp/src/type_conversions.cpp | 14 +-
foreign/cpp/tests/e2e/consumer_group.cpp | 12 +
foreign/cpp/tests/e2e/message.cpp | 2 +
foreign/cpp/tests/e2e/stream.cpp | 372 -
foreign/cpp/tests/e2e/test_helpers.hpp | 41 +
foreign/cpp/tests/e2e/topic.cpp | 331 -
foreign/cpp/tests/unit/unit_tests.cpp | 11 +-
foreign/csharp/Directory.Packages.props | 4 +-
.../ConnectionStringTests.cs | 104 +
.../ConsumerGroupTests.cs | 6 +-
.../Fixtures/IggyServerFixture.cs | 4 +-
.../Iggy_SDK.Tests.Integration/HeartbeatTests.cs | 5 +-
.../Helpers/ConsumerGroupAssignment.cs | 74 +
.../Helpers/Eventually.cs | 43 -
.../IggyTlsConnectionTests.cs | 16 +
.../Iggy_SDK.Tests.Integration/OffsetTests.cs | 9 +
.../Iggy_SDK.Tests.Integration/OptionsTests.cs | 1 +
.../Iggy_SDK.Tests.Integration/StreamsTests.cs | 32 -
.../Iggy_SDK.Tests.Integration/TopicsTests.cs | 32 -
.../Vsr/VsrConsumerGroupTests.cs | 27 +-
.../Iggy_SDK/Configuration/ConnectionString.cs | 250 +
.../Configuration/IggyClientConfigurator.cs | 38 +
.../Iggy_SDK/Consumers/IggyConsumer.Rented.cs | 23 +-
foreign/csharp/Iggy_SDK/Consumers/IggyConsumer.cs | 125 +-
.../csharp/Iggy_SDK/Consumers/IggyConsumerOfT.cs | 3 +-
.../csharp/Iggy_SDK/Consumers/ReceivedMessage.cs | 14 +
.../Iggy_SDK/Consumers/ReceivedRentedMessage.cs | 10 +
.../Iggy_SDK/Contracts/Auth/GlobalPermissions.cs | 7 +-
.../Iggy_SDK/Contracts/Http/MessageSendRequest.cs | 1 +
.../Iggy_SDK/Contracts/Http/StoreOffsetRequest.cs | 1 +
...lAccessTokenResponse.cs => PartitionContext.cs} | 23 +-
.../csharp/Iggy_SDK/Contracts/PartitionResponse.cs | 3 +
.../csharp/Iggy_SDK/Contracts/PolledMessages.cs | 3 +
.../Iggy_SDK/Contracts/PolledMessagesRental.cs | 3 +
.../csharp/Iggy_SDK/Contracts/StreamPermissions.cs | 7 +-
.../csharp/Iggy_SDK/Contracts/Tcp/TcpContracts.cs | 7 -
.../csharp/Iggy_SDK/Contracts/TopicPermissions.cs | 7 +-
.../csharp/Iggy_SDK/Factory/IggyClientFactory.cs | 21 +-
.../csharp/Iggy_SDK/IggyClient/IIggyConsumer.cs | 65 +
.../Iggy_SDK/IggyClient/IIggyConsumerGroup.cs | 1 +
foreign/csharp/Iggy_SDK/IggyClient/IIggyOffset.cs | 28 +
foreign/csharp/Iggy_SDK/IggyClient/IIggyStream.cs | 12 -
foreign/csharp/Iggy_SDK/IggyClient/IIggyTopic.cs | 13 -
.../Implementations/HttpMessageStream.cs | 159 +-
.../TcpMessageStream.PollRouting.cs | 263 +-
.../Implementations/TcpMessageStream.Vsr.cs | 101 +-
.../IggyClient/Implementations/TcpMessageStream.cs | 197 +-
.../Iggy_SDK/JsonConverters/MessagesConverter.cs | 5 +
foreign/csharp/Iggy_SDK/Kinds/PollingStrategy.cs | 20 +
foreign/csharp/Iggy_SDK/Mappers/BinaryMapper.cs | 35 +-
foreign/csharp/Iggy_SDK/Utils/CommandCodes.cs | 5 +-
.../csharp/Iggy_SDK/Utils/IggyDurationParser.cs | 394 +
foreign/csharp/Iggy_SDK/Vsr/ConsensusSession.cs | 50 +-
.../Iggy_SDK/Vsr/ConsumerGroupClientState.cs | 67 +-
foreign/csharp/Iggy_SDK/Vsr/LoginRegister.cs | 52 +-
foreign/csharp/Iggy_SDK/Vsr/VsrConnection.cs | 27 +-
foreign/csharp/Iggy_SDK/Vsr/VsrError.cs | 6 +
foreign/csharp/Iggy_SDK/Vsr/VsrHeader.cs | 15 +-
foreign/csharp/Iggy_SDK/Vsr/VsrOperation.cs | 39 +-
.../ClientTests/ConnectionStringTests.cs | 441 +
.../ClientTests/HttpConsumerOffsetTests.cs} | 27 +-
.../ClientTests/HttpPartitionContextTests.cs | 261 +
.../ClientTests/HttpTopicOptionsTests.cs | 19 +-
.../ConsumerSessionGenerationTests.cs | 2 +-
.../NoAssignedPartitionBackoffTests.cs | 6 +-
.../ConsumerTests/OffsetContinuationTests.cs | 380 +
.../ConsumerTests/PartitionIncarnationTests.cs | 217 +
.../ConsumerTests/RentedConsumerTests.cs | 4 +-
.../ConsumerTests/RentedTypedConsumerTests.cs | 3 +
.../MessageBatchGoldenVectorTests.cs | 11 +-
.../Iggy_SDK_Tests/MapperTests/BinaryMapper.cs | 45 +-
.../UtilityTests/IggyDurationParserTests.cs | 227 +
.../csharp/Iggy_SDK_Tests/Utils/BinaryFactory.cs | 17 +
.../VsrTests/ConsensusSessionTests.cs | 68 +-
.../VsrTests/ConsumerGroupClientStateTests.cs | 4 +-
.../VsrTests/EndpointFailoverTests.cs | 264 +-
.../Iggy_SDK_Tests/VsrTests/GroupPollingTests.cs | 73 +-
.../Iggy_SDK_Tests/VsrTests/LoginRegisterTests.cs | 38 +-
foreign/csharp/Iggy_SDK_Tests/VsrTests/MockNode.cs | 86 +-
.../VsrTests/PartitionContextTests.cs | 558 +
.../Iggy_SDK_Tests/VsrTests/PrimaryPollingTests.cs | 298 +-
.../Iggy_SDK_Tests/VsrTests/VsrHeaderTests.cs | 18 +-
.../Iggy_SDK_Tests/VsrTests/VsrOperationTests.cs | 6 +-
.../VsrTests/VsrProtocolDriftTests.cs | 37 +-
foreign/csharp/README.md | 86 +-
foreign/go/README.md | 23 +-
.../binary_response_deserializer.go | 31 +-
.../binary_response_deserializer_test.go | 1 +
.../vsr_response_deserializer_test.go | 5 +-
foreign/go/client/tcp/cluster.go | 10 +
foreign/go/client/tcp/tcp_connect_test.go | 47 +-
foreign/go/client/tcp/tcp_core.go | 126 +-
foreign/go/client/tcp/tcp_core_review_test.go | 28 +-
foreign/go/client/tcp/tcp_core_test.go | 223 +-
foreign/go/client/tcp/tcp_failover_test.go | 99 +-
foreign/go/client/tcp/tcp_group_polling.go | 9 +-
foreign/go/client/tcp/tcp_group_polling_test.go | 52 +-
foreign/go/client/tcp/tcp_messaging.go | 160 +-
foreign/go/client/tcp/tcp_offset_management.go | 60 +-
foreign/go/client/tcp/tcp_partition_management.go | 8 +-
foreign/go/client/tcp/tcp_poll_routing.go | 130 +-
foreign/go/client/tcp/tcp_poll_routing_test.go | 459 +-
foreign/go/client/tcp/tcp_session_management.go | 77 +-
foreign/go/client/tcp/tcp_testing_test.go | 29 +
foreign/go/client/tcp/tcp_topic_cache.go | 66 +-
foreign/go/client/tcp/tcp_topic_cache_test.go | 68 +-
foreign/go/contracts/client.go | 43 +-
foreign/go/contracts/message_polling.go | 11 +
foreign/go/contracts/messages.go | 1 +
foreign/go/contracts/offset.go | 8 +
foreign/go/contracts/partitions.go | 31 +-
foreign/go/errors/errors.yaml | 31 +
foreign/go/errors/errors_gen.go | 118 +
foreign/go/errors/errors_test.go | 12 +
foreign/go/internal/command/code.go | 5 +-
foreign/go/internal/vsr/header.go | 13 +-
foreign/go/internal/vsr/header_test.go | 1 -
foreign/go/internal/vsr/operation.go | 28 +-
foreign/go/internal/vsr/operation_test.go | 6 +-
foreign/go/internal/vsr/protocol_parity_test.go | 29 +-
foreign/go/internal/vsr/register.go | 42 +-
foreign/go/internal/vsr/register_test.go | 40 +-
foreign/go/internal/vsr/session.go | 13 +-
foreign/go/tests/e2e_helpers_test.go | 33 +
foreign/go/tests/e2e_test.go | 18 +-
foreign/java/README.md | 14 +
foreign/java/gradle/libs.versions.toml | 6 +-
.../java/gradle/wrapper/gradle-wrapper.properties | 2 +-
foreign/java/gradlew | 4 +-
.../iggy/client/async/ConsumerOffsetsClient.java | 35 +
.../apache/iggy/client/async/MessagesClient.java | 14 +
.../iggy/client/async/tcp/AsyncIggyTcpClient.java | 41 +-
.../iggy/client/async/tcp/AsyncTcpConnection.java | 421 +-
.../client/async/tcp/ConsumerOffsetsTcpClient.java | 108 +-
.../iggy/client/async/tcp/MessagesTcpClient.java | 88 +-
.../iggy/client/async/tcp/PartitionContexts.java | 191 +
.../iggy/client/async/tcp/PartitionsTcpClient.java | 12 +
.../apache/iggy/client/async/tcp/PollRouter.java | 149 +-
.../client/async/tcp/RawPartitionRequests.java | 170 +
.../iggy/client/async/tcp/StreamsTcpClient.java | 15 +-
.../iggy/client/async/tcp/TopicsTcpClient.java | 17 +-
.../client/async/tcp/vsr/ConsensusSession.java | 118 +-
.../iggy/client/async/tcp/vsr/VsrHeaders.java | 9 +-
.../iggy/client/async/tcp/vsr/VsrLoginCodec.java | 43 +-
.../iggy/client/async/tcp/vsr/VsrOperation.java | 20 +-
.../client/async/tcp/vsr/VsrRequestEncoder.java | 37 +-
.../client/async/tcp/vsr/VsrResponseHandler.java | 2 +-
.../client/blocking/ConsumerOffsetsClient.java | 30 +
.../iggy/client/blocking/IggyBaseClient.java | 3 +-
.../iggy/client/blocking/MessagesClient.java | 17 +
.../blocking/http/ConsumerOffsetsHttpClient.java | 30 +-
.../iggy/client/blocking/http/IggyHttpClient.java | 9 +-
.../client/blocking/http/InternalHttpClient.java | 69 +-
.../client/blocking/http/MessagesHttpClient.java | 83 +-
.../client/blocking/http/PartitionsHttpClient.java | 6 +-
.../iggy/client/blocking/http/SendContexts.java | 86 +
.../client/blocking/http/StreamsHttpClient.java | 5 +-
.../client/blocking/http/TopicsHttpClient.java | 5 +-
.../blocking/tcp/ConsumerOffsetsTcpClient.java | 12 +
.../org/apache/iggy/exception/IggyErrorCode.java | 8 +
.../org/apache/iggy/message/PolledMessages.java | 5 +-
.../org/apache/iggy/message/PollingStrategy.java | 30 +-
.../java/org/apache/iggy/partition/Partition.java | 3 +-
.../{Partition.java => PartitionContext.java} | 13 +-
.../org/apache/iggy/serde/BytesDeserializer.java | 21 +-
.../org/apache/iggy/serde/BytesSerializer.java | 11 +-
.../java/org/apache/iggy/serde/CommandCode.java | 12 +-
.../test/java/org/apache/iggy/TestConstants.java | 9 +
.../client/async/AsyncClientIntegrationTest.java | 25 +-
.../client/async/AsyncConnectionPoolAuthTest.java | 7 +-
.../AsyncIggyTcpClientEndpointFailoverTest.java | 2 +-
.../tcp/AsyncIggyTcpClientEventLoopGroupTest.java | 2 +-
.../AsyncIggyTcpClientPartitionContextTest.java | 844 +
.../tcp/AsyncIggyTcpClientRawRequestTest.java | 362 +
.../AsyncIggyTcpClientSendContextCacheTest.java | 251 +
.../AsyncIggyTcpClientTransientFailoverTest.java | 352 +-
.../tcp/AsyncTcpConnectionConcurrencyTest.java | 2 +-
.../tcp/AsyncTcpConnectionLifecycleBusyTest.java | 429 +
.../client/async/tcp/ClientRoutingStateTest.java | 5 +-
.../iggy/client/async/tcp/PollRouterTest.java | 266 +
.../client/async/tcp/vsr/VsrLoginCodecTest.java | 58 +-
.../async/tcp/vsr/VsrRequestEncoderTest.java | 50 +-
.../async/tcp/vsr/VsrResponseHandlerTest.java | 7 +-
.../iggy/client/blocking/IntegrationTest.java | 4 +-
.../http/MessagesHttpClientSendContextTest.java | 433 +
.../client/blocking/http/ObjectMapperTest.java | 30 +
.../client/blocking/tcp/BytesSerializerTest.java | 26 +
.../blocking/tcp/ConsumerGroupsTcpClientTest.java | 30 +-
.../client/blocking/tcp/MessagesTcpClientTest.java | 9 +-
.../apache/iggy/exception/IggyErrorCodeTest.java | 6 +
.../apache/iggy/message/PollingStrategyTest.java | 36 +
.../apache/iggy/serde/BytesDeserializerTest.java | 1 +
.../iggy/serde/MessagesBatchWireFormatTest.java | 8 +-
.../org/apache/iggy/topic/TopicDetailsTest.java | 4 +-
foreign/node/README.md | 41 +-
foreign/node/package-lock.json | 197 +-
foreign/node/package.json | 2 +-
foreign/node/scripts/check-vsr-protocol.mjs | 30 +-
foreign/node/src/client/client.socket.test.ts | 871 +-
foreign/node/src/client/client.socket.ts | 440 +-
foreign/node/src/client/client.type.ts | 11 +-
foreign/node/src/e2e/tcp.stream.e2e.ts | 4 -
foreign/node/src/e2e/tcp.system.e2e.ts | 7 +
foreign/node/src/e2e/tcp.topic.e2e.ts | 4 -
foreign/node/src/index.ts | 1 +
foreign/node/src/wire/command-set.ts | 6 +-
foreign/node/src/wire/command.code.ts | 7 +-
foreign/node/src/wire/command.utils.ts | 7 +-
foreign/node/src/wire/error.code.test.ts | 19 +-
foreign/node/src/wire/error.code.ts | 8 +
foreign/node/src/wire/error.utils.ts | 9 +-
foreign/node/src/wire/identifier.utils.ts | 4 +
.../node/src/wire/message/message-batch.test.ts | 16 +-
.../src/wire/message/poll-messages.command.test.ts | 73 +-
.../node/src/wire/message/poll-messages.command.ts | 30 +-
foreign/node/src/wire/message/poll.utils.ts | 8 +-
.../src/wire/message/send-messages.command.test.ts | 100 +-
.../node/src/wire/message/send-messages.command.ts | 84 +-
.../node/src/wire/offset/delete-offset.command.ts | 15 +-
.../src/wire/offset/offset-write.command.test.ts | 47 +
.../node/src/wire/offset/store-offset.command.ts | 14 +-
foreign/node/src/wire/stream/index.ts | 1 -
.../node/src/wire/stream/purge-stream.command.ts | 49 -
foreign/node/src/wire/system/index.ts | 1 +
.../node/src/wire/system/snapshot.command.test.ts | 107 +
foreign/node/src/wire/system/snapshot.command.ts | 103 +
foreign/node/src/wire/topic/index.ts | 1 -
foreign/node/src/wire/topic/purge-topic.command.ts | 54 -
foreign/node/src/wire/topic/topic.utils.ts | 6 +-
foreign/node/src/wire/vsr/header.test.ts | 6 +-
foreign/node/src/wire/vsr/header.ts | 38 +-
foreign/node/src/wire/vsr/index.ts | 38 +-
foreign/node/src/wire/vsr/operation.test.ts | 11 +-
foreign/node/src/wire/vsr/operation.ts | 22 +-
foreign/node/src/wire/vsr/register.test.ts | 41 +-
foreign/node/src/wire/vsr/register.ts | 40 +-
foreign/node/src/wire/vsr/session.test.ts | 15 +-
foreign/node/src/wire/vsr/session.ts | 17 +-
foreign/node/src/wire/vsr/vsr.test.ts | 10 +-
foreign/php/Dockerfile.test | 2 +-
foreign/php/README.md | 23 +-
foreign/php/iggy-php.stubs.php | 151 +-
foreign/php/src/client.rs | 9 +
foreign/php/src/consumer.rs | 56 +-
foreign/php/src/lib.rs | 4 +-
foreign/php/src/message_iterator.rs | 5 +-
foreign/php/src/receive_message.rs | 200 +-
foreign/php/tests/IggySdkTest.php | 96 +
foreign/python/.python-version | 2 +-
foreign/python/Dockerfile.test | 2 +-
foreign/python/README.md | 32 +-
foreign/python/apache_iggy.pyi | 248 +-
foreign/python/pylock.toml | 136 +-
foreign/python/pyproject.toml | 3 +-
foreign/python/src/bin/stub_gen.rs | 3 +-
foreign/python/src/client.rs | 159 +-
foreign/python/src/consumer.rs | 81 +-
foreign/python/src/lib.rs | 4 +-
foreign/python/src/receive_message.rs | 189 +-
foreign/python/src/send_message.rs | 13 +-
foreign/python/src/topic.rs | 8 +
foreign/python/tests/test_connectivity.py | 13 +-
foreign/python/tests/test_consumer_group.py | 21 +-
foreign/python/tests/test_message_operations.py | 56 +
foreign/python/tests/test_producer.py | 76 +-
foreign/python/tests/test_segment.py | 325 +
foreign/python/tests/test_stream.py | 97 +-
foreign/python/tests/test_topic.py | 119 -
foreign/python/tests/utils.py | 55 +
foreign/python/uv.lock | 137 +-
.../swift/Sources/Iggy/Errors/IggyErrorCode.swift | 14 +
.../swift/Sources/Iggy/Models/IggyMessage.swift | 4 +-
foreign/swift/Sources/Iggy/Models/Resources.swift | 34 +-
.../swift/Sources/Iggy/Models/TopicOptions.swift | 4 +-
foreign/swift/Tests/IggyTests/ErrorCodeTests.swift | 1 +
foreign/swift/Tests/IggyTests/Fixtures/golden.json | 27 +-
.../swift/Tests/IggyTests/ModelVectorTests.swift | 14 +
foreign/swift/Tools/golden-vectors/src/main.rs | 50 +-
gateways/kafka/Cargo.toml | 3 +
gateways/kafka/Dockerfile | 2 +-
gateways/kafka/README.md | 99 +-
gateways/kafka/docs/ACL_MAPPING.md | 5 +-
gateways/kafka/docs/BRIDGE_MAPPING.md | 21 +
gateways/kafka/docs/CONFIGS.md | 109 +
gateways/kafka/docs/CONSUMER_GROUPS.md | 65 +-
gateways/kafka/docs/MANUAL_TESTING.md | 33 +-
gateways/kafka/docs/OFFSET_STORAGE.md | 297 +-
gateways/kafka/docs/SCOPE.md | 75 +-
gateways/kafka/docs/TEST_SUITE.md | 5 +-
gateways/kafka/docs/kafka_api_keys_reference.md | 25 +-
gateways/kafka/scripts/ci-wire-fixtures.sh | 2 +-
gateways/kafka/src/bridge/error.rs | 54 +-
gateways/kafka/src/bridge/iggy_bridge/fetch.rs | 34 +-
.../kafka/src/bridge/iggy_bridge/group_offsets.rs | 686 +
gateways/kafka/src/bridge/iggy_bridge/mod.rs | 41 +-
gateways/kafka/src/bridge/iggy_bridge/produce.rs | 9 +-
gateways/kafka/src/bridge/iggy_bridge/topics.rs | 214 +-
gateways/kafka/src/bridge/mod.rs | 9 +-
gateways/kafka/src/group/mod.rs | 149 +-
gateways/kafka/src/group/state.rs | 1147 +-
gateways/kafka/src/protocol/acl.rs | 4 +-
gateways/kafka/src/protocol/api.rs | 87 +-
gateways/kafka/src/protocol/bounds_guard.rs | 599 +-
gateways/kafka/src/protocol/dedup.rs | 73 +
.../kafka/src/protocol/handlers/alter_configs.rs | 389 +
.../kafka/src/protocol/handlers/create_topics.rs | 187 +-
.../kafka/src/protocol/handlers/delete_topics.rs | 404 +
.../src/protocol/handlers/describe_configs.rs | 480 +
.../kafka/src/protocol/handlers/describe_groups.rs | 165 +
gateways/kafka/src/protocol/handlers/fetch.rs | 21 +-
gateways/kafka/src/protocol/handlers/heartbeat.rs | 13 +-
.../kafka/src/protocol/handlers/list_groups.rs | 246 +
gateways/kafka/src/protocol/handlers/metadata.rs | 18 +-
gateways/kafka/src/protocol/handlers/mod.rs | 83 +-
.../kafka/src/protocol/handlers/offset_commit.rs | 321 +
.../kafka/src/protocol/handlers/offset_fetch.rs | 564 +
.../kafka/src/protocol/handlers/topic_config.rs | 514 +
gateways/kafka/src/protocol/mod.rs | 2 +
gateways/kafka/src/protocol/wire_len.rs | 83 +
gateways/kafka/src/server.rs | 3 +
gateways/kafka/tests/api_handler_tests.rs | 58 +-
.../kafka/tests/bridge_iggy_integration_tests.rs | 2 +-
gateways/kafka/tests/common/scope.rs | 7 +
gateways/kafka/tests/common/wire.rs | 245 +-
gateways/kafka/tests/configs_handler_tests.rs | 212 +
gateways/kafka/tests/configs_java_client_tests.rs | 310 +
gateways/kafka/tests/configs_real_bridge_tests.rs | 642 +
gateways/kafka/tests/consumer_group_tests.rs | 685 +-
.../kafka/tests/delete_topics_real_bridge_tests.rs | 336 +
gateways/kafka/tests/fetch_real_bridge_tests.rs | 59 +-
gateways/kafka/tests/golden_wire_fixtures_tests.rs | 26 +-
gateways/kafka/tests/java/ConfigsProbe.java | 129 +
gateways/kafka/tests/kafka_client_e2e_tests.rs | 521 +-
gateways/kafka/tests/metadata_real_bridge_tests.rs | 2 +-
gateways/kafka/tests/offsets_real_bridge_tests.rs | 364 +
gateways/kafka/tests/produce_real_bridge_tests.rs | 2 +-
gateways/kafka/tests/sasl_tests.rs | 6 +-
gateways/kafka/tests/server_e2e_tests.rs | 8 +-
gateways/kafka/tests/version_firewall_tests.rs | 107 +-
gateways/kafka/tools/kafka-tool/README.md | 4 +-
gateways/kafka/tools/kafka-tool/src/main.rs | 25 +-
gateways/kafka/tools/kafka-tool/src/response.rs | 38 +-
justfile | 6 +-
rfcs/README.md | 250 +
rfcs/rfc-template.md | 74 +
rust-toolchain.toml | 2 +-
scripts/ci/sync-python-interpreter-version.sh | 47 +-
scripts/ci/wheel-interpreters.sh | 60 +
web/README.md | 2 +-
web/eslint.config.js | 4 +-
web/package-lock.json | 1054 +-
web/package.json | 23 +-
web/src/ambient.d.ts | 2 +-
.../frontend/src/hooks/mod.rs => web/src/env.ts | 6 +-
web/src/hooks.client.ts | 2 +-
web/src/lib/api/ApiSchema.ts | 4 +-
web/src/lib/api/clientApi.ts | 18 +-
web/src/lib/api/fetchApi.ts | 8 +-
web/src/lib/api/fetchRouteApi.ts | 6 +-
web/src/lib/api/handleFetchErrors.ts | 18 +-
web/src/lib/auth/authStore.svelte.ts | 8 +-
web/src/lib/components/Breadcrumbs.svelte | 12 +-
web/src/lib/components/Button.svelte | 2 +-
web/src/lib/components/Combobox.svelte | 2 +-
.../components/DeleteButtonWithConfirmation.svelte | 2 +-
.../components/DropdownMenu/DropdownMenu.svelte | 2 +-
web/src/lib/components/DurationInput.svelte | 2 +-
web/src/lib/components/Header.svelte | 6 +-
.../lib/components/Layouts/SettingsLayout.svelte | 12 +-
web/src/lib/components/LoadingIndicator.svelte | 4 +-
web/src/lib/components/Logo/Logo.svelte | 10 +-
.../MessageDecoder/MessageDecoder.svelte | 2 +-
.../decoders/BuiltInDecoders/jsonDecoder.ts | 2 +-
web/src/lib/components/ModalConfirmation.svelte | 2 +-
.../components/Modals/AddPartitionsModal.svelte | 6 +-
.../lib/components/Modals/AddStreamModal.svelte | 4 +-
web/src/lib/components/Modals/AddTopicModal.svelte | 8 +-
web/src/lib/components/Modals/AddUserModal.svelte | 6 +-
web/src/lib/components/Modals/AppModals.svelte | 4 +-
.../components/Modals/DeletePartitionsModal.svelte | 8 +-
.../lib/components/Modals/DeleteUserModal.svelte | 2 +-
web/src/lib/components/Modals/EditUserModal.svelte | 2 +-
.../Modals/EditUserPermissionsModal.svelte | 2 +-
.../lib/components/Modals/InspectMessage.svelte | 8 +-
web/src/lib/components/Modals/ModalBase.svelte | 2 +-
.../components/Modals/StreamSettingsModal.svelte | 14 +-
.../components/Modals/TopicSettingsModal.svelte | 12 +-
web/src/lib/components/Navbar.svelte | 23 +-
web/src/lib/components/Paginator.svelte | 4 +-
web/src/lib/components/PasswordInput.svelte | 2 +-
web/src/lib/components/PeriodicInvalidator.svelte | 6 +-
web/src/lib/components/PermissionsManager.svelte | 12 +-
.../RouteComponents/Settings/UsersTab.svelte | 16 +-
.../Settings/UsersTabActions.svelte | 4 +-
web/src/lib/components/SlimSortableList.svelte | 2 +-
web/src/lib/components/SortableList.svelte | 9 +-
web/src/lib/components/StopPropagation.svelte | 2 +-
web/src/lib/components/ThemeController.svelte | 4 +-
web/src/lib/domain/Message.ts | 2 +-
web/src/lib/domain/Partition.ts | 2 +-
web/src/lib/domain/Stats.ts | 2 +-
web/src/lib/domain/Topic.ts | 6 +-
web/src/lib/domain/User.ts | 2 +-
web/src/lib/hooks/useGoPrev.ts | 10 +-
web/src/lib/types/appRoutes.ts | 4 +-
.../utils/base64Utils.test.mjs => params.test.mjs} | 18 +-
.../frontend/src/hooks/mod.rs => web/src/params.ts | 6 +-
web/src/params/i32.ts | 20 -
web/src/routes/+layout.svelte | 4 +-
web/src/routes/+layout.ts | 27 +-
web/src/routes/auth/+layout.svelte | 2 +-
web/src/routes/auth/logout/+page.svelte | 6 +-
web/src/routes/auth/sign-in/+page.svelte | 22 +-
web/src/routes/auth/sign-in/+page.ts | 8 +-
web/src/routes/dashboard/+layout.svelte | 8 +-
web/src/routes/dashboard/+layout.ts | 12 +-
web/src/routes/dashboard/overview/+page.ts | 4 +-
.../routes/dashboard/settings/server/+page.svelte | 8 +-
web/src/routes/dashboard/settings/server/+page.ts | 4 +-
.../dashboard/settings/terminal/+page.svelte | 2 +-
.../routes/dashboard/settings/users/+page.svelte | 18 +-
web/src/routes/dashboard/settings/users/+page.ts | 8 +-
.../routes/dashboard/settings/webUI/+page.svelte | 10 +-
web/src/routes/dashboard/streams/+layout.svelte | 17 +-
web/src/routes/dashboard/streams/+layout.ts | 4 +-
.../dashboard/streams/[streamId=i32]/+page.svelte | 14 +-
.../dashboard/streams/[streamId=i32]/+page.ts | 4 +-
.../streams/[streamId=i32]/topics/+page.svelte | 4 +-
.../topics/[topicId=i32]/+page.svelte | 18 +-
.../[streamId=i32]/topics/[topicId=i32]/+page.ts | 4 +-
.../partitions/[partitionId=i32]/+page.svelte | 4 +-
.../[partitionId=i32]/messages/+page.svelte | 25 +-
.../partitions/[partitionId=i32]/messages/+page.ts | 6 +-
web/svelte.config.js | 46 -
web/tsconfig.json | 15 +-
web/vite.config.ts | 31 +-
929 files changed, 104066 insertions(+), 37905 deletions(-)
delete mode 100644 .pr4372-comments.json
create mode 100644 core/binary_protocol/src/primitives/partition_history.rs
create mode 100644
core/binary_protocol/src/requests/messages/get_send_context.rs
create mode 100644
core/binary_protocol/src/requests/partitions/install_consumer_group_owner.rs
create mode 100644
core/binary_protocol/src/requests/partitions/retire_consumer_group_owners.rs
create mode 100644
core/binary_protocol/src/requests/partitions/transition_partition_history.rs
delete mode 100644 core/binary_protocol/src/requests/streams/purge_stream.rs
delete mode 100644
core/binary_protocol/src/requests/system/attach_consumer_session.rs
create mode 100644 core/binary_protocol/src/requests/system/bind_session.rs
create mode 100644 core/binary_protocol/src/requests/system/finalize_session.rs
create mode 100644 core/binary_protocol/src/requests/system/retire_sessions.rs
delete mode 100644 core/binary_protocol/src/requests/topics/purge_topic.rs
delete mode 100644 core/binary_protocol/src/responses/streams/purge_stream.rs
delete mode 100644 core/binary_protocol/src/responses/topics/purge_topic.rs
delete mode 100644 core/cli/src/commands/binary_streams/purge_stream.rs
delete mode 100644 core/cli/src/commands/binary_topics/purge_topic.rs
delete mode 100644 core/common/src/http/streams/purge_stream.rs
delete mode 100644 core/common/src/http/topics/purge_topic.rs
copy core/common/src/types/options/{durability.rs =>
partition_resize_policy.rs} (67%)
create mode 100644 core/configs/src/configs_impl/env_listing.rs
create mode 100644
core/connectors/runtime/example_config/connectors/bigquery_sink.toml
copy core/connectors/sinks/{influxdb_sink => bigquery_sink}/Cargo.toml (71%)
create mode 100644 core/connectors/sinks/bigquery_sink/README.md
create mode 100644 core/connectors/sinks/bigquery_sink/config.toml
create mode 100644 core/connectors/sinks/bigquery_sink/src/client.rs
create mode 100644 core/connectors/sinks/bigquery_sink/src/encode.rs
create mode 100644 core/connectors/sinks/bigquery_sink/src/error.rs
create mode 100644 core/connectors/sinks/bigquery_sink/src/lib.rs
create mode 100644 core/connectors/sinks/bigquery_sink/src/schema.rs
create mode 100644 core/connectors/sinks/bigquery_sink/src/sink.rs
create mode 100644 core/connectors/sinks/bigquery_sink/tests/bigquery_sink.rs
create mode 100644 core/connectors/sinks/bigquery_sink/tests/common/mod.rs
copy core/integration/tests/cli/general/{test_missing_credentials.rs =>
test_unknown_transport.rs} (67%)
delete mode 100644
core/integration/tests/cli/stream/test_stream_purge_command.rs
copy core/integration/tests/cli/system/{test_logout_cmd.rs =>
test_session_status_cmd.rs} (57%)
delete mode 100644 core/integration/tests/cli/topic/test_topic_purge_command.rs
create mode 100644 core/integration/tests/cluster/chaos_monkey.rs
create mode 100644 core/integration/tests/cluster/chaos_monkey/report.rs
create mode 100644 core/integration/tests/config_env_listing/mod.rs
create mode 100644 core/integration/tests/sdk/stream_builder.rs
rename core/integration/tests/server/{purge_delete.rs => delete_segments.rs}
(68%)
delete mode 100644 core/integration/tests/server/purge_vsr.rs
rename core/integration/tests/server/scenarios/{purge_delete_scenario.rs =>
delete_segments_scenario.rs} (68%)
create mode 100644 core/integration/tests/server/topic_metrics_vsr.rs
create mode 100644 core/metadata/src/stm/lifecycle.rs
create mode 100644 core/partitions/src/io.rs
copy core/{binary_protocol/src/requests/streams/get_streams.rs =>
sdk/src/http/path.rs} (52%)
create mode 100644 core/sdk/src/http/scripted_server.rs
create mode 100644 core/shard/src/partition_io.rs
delete mode 100644 core/simulator/src/consumer_offset_history_tests.rs
create mode 100644 core/simulator/src/storage/bookmark_recovery.rs
delete mode 100644 core/simulator/src/storage/purge.rs
delete mode 100644 core/simulator/src/workload/ops/purge_stream.rs
delete mode 100644 core/simulator/src/workload/ops/purge_topic.rs
create mode 100644
foreign/csharp/Iggy_SDK.Tests.Integration/ConnectionStringTests.cs
create mode 100644
foreign/csharp/Iggy_SDK.Tests.Integration/Helpers/ConsumerGroupAssignment.cs
delete mode 100644
foreign/csharp/Iggy_SDK.Tests.Integration/Helpers/Eventually.cs
create mode 100644 foreign/csharp/Iggy_SDK/Configuration/ConnectionString.cs
copy foreign/csharp/Iggy_SDK/Contracts/{Auth/PersonalAccessTokenResponse.cs =>
PartitionContext.cs} (61%)
create mode 100644 foreign/csharp/Iggy_SDK/Utils/IggyDurationParser.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ClientTests/ConnectionStringTests.cs
copy foreign/csharp/{Iggy_SDK/Contracts/Http/StoreOffsetRequest.cs =>
Iggy_SDK_Tests/ClientTests/HttpConsumerOffsetTests.cs} (52%)
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ClientTests/HttpPartitionContextTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/OffsetContinuationTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/PartitionIncarnationTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/UtilityTests/IggyDurationParserTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/VsrTests/PartitionContextTests.cs
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/PartitionContexts.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/RawPartitionRequests.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/blocking/http/SendContexts.java
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/partition/{Partition.java
=> PartitionContext.java} (70%)
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientPartitionContextTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientRawRequestTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientSendContextCacheTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncTcpConnectionLifecycleBusyTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/PollRouterTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/MessagesHttpClientSendContextTest.java
create mode 100644 foreign/node/src/wire/offset/offset-write.command.test.ts
delete mode 100644 foreign/node/src/wire/stream/purge-stream.command.ts
create mode 100644 foreign/node/src/wire/system/snapshot.command.test.ts
create mode 100644 foreign/node/src/wire/system/snapshot.command.ts
delete mode 100644 foreign/node/src/wire/topic/purge-topic.command.ts
create mode 100644 foreign/python/tests/test_segment.py
create mode 100644 gateways/kafka/docs/CONFIGS.md
create mode 100644 gateways/kafka/src/bridge/iggy_bridge/group_offsets.rs
create mode 100644 gateways/kafka/src/protocol/dedup.rs
create mode 100644 gateways/kafka/src/protocol/handlers/alter_configs.rs
create mode 100644 gateways/kafka/src/protocol/handlers/delete_topics.rs
create mode 100644 gateways/kafka/src/protocol/handlers/describe_configs.rs
create mode 100644 gateways/kafka/src/protocol/handlers/describe_groups.rs
create mode 100644 gateways/kafka/src/protocol/handlers/list_groups.rs
create mode 100644 gateways/kafka/src/protocol/handlers/offset_commit.rs
create mode 100644 gateways/kafka/src/protocol/handlers/offset_fetch.rs
create mode 100644 gateways/kafka/src/protocol/handlers/topic_config.rs
create mode 100644 gateways/kafka/src/protocol/wire_len.rs
create mode 100644 gateways/kafka/tests/configs_handler_tests.rs
create mode 100644 gateways/kafka/tests/configs_java_client_tests.rs
create mode 100644 gateways/kafka/tests/configs_real_bridge_tests.rs
create mode 100644 gateways/kafka/tests/delete_topics_real_bridge_tests.rs
create mode 100644 gateways/kafka/tests/java/ConfigsProbe.java
create mode 100644 gateways/kafka/tests/offsets_real_bridge_tests.rs
create mode 100644 rfcs/README.md
create mode 100644 rfcs/rfc-template.md
create mode 100755 scripts/ci/wheel-interpreters.sh
copy core/bench/dashboard/frontend/src/hooks/mod.rs => web/src/env.ts (82%)
copy web/src/{lib/utils/base64Utils.test.mjs => params.test.mjs} (60%)
copy core/bench/dashboard/frontend/src/hooks/mod.rs => web/src/params.ts (83%)
delete mode 100644 web/src/params/i32.ts
delete mode 100644 web/svelte.config.js