This is an automated email from the ASF dual-hosted git repository.
hubcio pushed a change to branch dependabot/bazel/foreign/cpp/cpp-a94e87bc21
in repository https://gitbox.apache.org/repos/asf/iggy.git
from 952d23027 chore(deps): Bump nlohmann_json
add dcd6dbe5b chore(deps): Bump the node group across 2 directories with
14 updates (#4690)
add 5d37d2444 chore(deps): Bump the web group across 1 directory with 5
updates (#4688)
add bdc41d49f feat(server): generic external authentication callout (#4634)
add 4eccc5e2c fix(cli): use correct consumer kind wording in
consumer-offset set (#4620)
add af99cd9f7 feat(server)!: replace readiness waits with grouped deferred
fetches (#4683)
add f9ba48a99 fix(cluster)!: let slow replicas catch up under load (#4658)
add fb7f7271b feat(cluster)!: add per-topic replication factor (#4692)
add 3226d89f0 feat(gateways): share Kafka consumer groups across multiple
gateways in Iggy (#4681)
add 42e3dafbe fix(configs): reject clusters exceeding VSR replica limit
(#4661)
add e8912af1d feat(partitions)!: add idempotent producers to Iggy (#4691)
add c17312606 feat(swift): add connection strings, examples and BDD suite
(#4679)
add 763c8edd9 fix(sdk): resume stopped partitions and keep readiness waits
current (#4693)
add 430d976cc feat(java): let clients close without Netty's 2 s quiet
period (#4704)
add eef3f6888 test(gateways): add failover tests for gateways beside a
3-node cluster (#4702)
add 785a456c9 docs(repo): document RFC labels and the flow after
acceptance (#4705)
add 3c265dd89 chore(deps): Bump the csharp group with 7 updates (#4712)
add d70f3668b chore(deps): upgrade Rust dependencies (#4731)
add a941a94be fix(gateways): keep Kafka Fetch answering when one partition
stalls (#4706)
add c190ae75c ci: set a default advertised address for the local Docker
image (#4635)
add 89dc4a269 feat(swift): publish the SDK to SwiftPM from the repository
root (#4714)
add 35915be1e fix(connectors): address Iceberg sink issues batch (#4736)
add 58fb9bf88 Merge branch 'master' into
dependabot/bazel/foreign/cpp/cpp-a94e87bc21
No new revisions were added by this update.
Summary of changes:
.claude/skills/connector-runtime/SKILL.md | 7 +-
.config/nextest.toml | 40 +
.dockerignore | 2 +
.github/actions/java-gradle/pre-merge/action.yml | 61 +
.github/actions/node-npm/pre-merge/action.yml | 59 +
.github/actions/rust/pre-merge/action.yml | 14 +-
.github/actions/swift/post-merge/action.yml | 94 +
.github/actions/swift/pre-merge/action.yml | 37 +-
.github/actions/utils/setup-rust/action.yml | 15 +-
.github/actions/utils/setup-swift/action.yml | 42 +-
.github/config/components.yml | 29 +-
.github/config/publish.yml | 7 +
.github/workflows/_rust.yml | 10 +-
.github/workflows/_test_examples.yml | 24 +
.github/workflows/coverage-baseline.yml | 2 +-
.github/workflows/post-merge.yml | 5 +-
.github/workflows/publish.yml | 89 +-
.gitignore | 5 +
.../agents/openai.yaml => .spi.yml | 7 +-
AGENTS.md | 4 +-
Cargo.lock | 1439 +--
Cargo.toml | 80 +-
Dockerfile | 1 +
foreign/swift/Package.swift => Package.swift | 23 +-
README.md | 25 +-
bdd/README.md | 14 +-
.../step_definitions/deferred_polling_steps.cpp | 401 +
.../features/step_definitions/messaging_steps.cpp | 4 +-
.../step_definitions/resource_options_steps.cpp | 8 +-
bdd/cpp/features/step_definitions/world.hpp | 47 +-
bdd/cpp/scripts/entrypoint.sh | 1 +
bdd/docker-compose.coverage.yml | 4 +-
bdd/docker-compose.no-quorum.yml | 3 +
bdd/docker-compose.server.yml | 3 +
bdd/docker-compose.yml | 23 +
bdd/go/tests/basic_messaging.go | 7 +-
bdd/go/tests/deferred_polling.go | 533 ++
bdd/go/tests/resource_options.go | 6 +-
bdd/go/tests/suite_test.go | 12 +
bdd/go/tests/tcp_test/consumers_feature_create.go | 2 +-
bdd/go/tests/tcp_test/consumers_feature_delete.go | 2 +-
.../tests/tcp_test/consumers_feature_get_by_id.go | 2 +-
bdd/go/tests/tcp_test/consumers_feature_join.go | 2 +-
bdd/go/tests/tcp_test/consumers_feature_leave.go | 2 +-
bdd/go/tests/tcp_test/messages_feature_send.go | 2 +-
bdd/go/tests/tcp_test/messages_steps.go | 8 +-
bdd/go/tests/tcp_test/offset_feature_delete.go | 2 +-
.../tests/tcp_test/offset_feature_deserialize.go | 2 +-
bdd/go/tests/tcp_test/partitions_feature_create.go | 2 +-
bdd/go/tests/tcp_test/partitions_feature_delete.go | 2 +-
bdd/go/tests/tcp_test/segments_feature_delete.go | 2 +-
bdd/go/tests/tcp_test/stream_feature_delete.go | 2 +-
bdd/go/tests/tcp_test/stream_feature_get_by_id.go | 2 +-
bdd/go/tests/tcp_test/stream_feature_update.go | 2 +-
bdd/go/tests/tcp_test/test_helpers.go | 16 +
bdd/go/tests/tcp_test/topic_feature_create.go | 3 +-
bdd/go/tests/tcp_test/topic_feature_delete.go | 2 +-
bdd/go/tests/tcp_test/topic_feature_update.go | 2 +-
.../org/apache/iggy/bdd/DeferredPollingSteps.java | 387 +
bdd/node/Dockerfile | 1 +
bdd/php/tests/BasicMessagingFeatureTest.php | 10 +-
bdd/php/tests/DeferredPollingFeatureTest.php | 454 +
bdd/php/tests/StreamOptionsFeatureTest.php | 8 +-
bdd/python/tests/conftest.py | 3 +-
bdd/python/tests/test_basic_messaging.py | 16 +-
bdd/python/tests/test_deferred_polling.py | 584 ++
bdd/python/tests/test_stream_options.py | 6 +-
bdd/python/uv.lock | 2 +-
bdd/rust/Cargo.toml | 6 +
bdd/rust/tests/common/global_context.rs | 30 +-
.../{session_contract.rs => deferred_polling.rs} | 5 +-
bdd/rust/tests/steps/deferred_polling.rs | 591 ++
bdd/rust/tests/steps/messages.rs | 11 +-
bdd/rust/tests/steps/mod.rs | 1 +
bdd/rust/tests/steps/resource_options.rs | 10 +-
bdd/scenarios/deferred_polling.feature | 96 +
{foreign => bdd}/swift/.swift-format | 0
bdd/{go => swift}/Dockerfile | 33 +-
.../swift => bdd/swift/tests}/Package.resolved | 0
.../messages.rs => bdd/swift/tests/Package.swift | 31 +-
.../Sources/iggy-bdd/DeferredPollingSteps.swift | 265 +
bdd/swift/tests/Sources/iggy-bdd/Gherkin.swift | 102 +
.../tests/Sources/iggy-bdd/MessagingSteps.swift | 216 +
.../Sources/iggy-bdd/MetadataChangesSteps.swift | 265 +
.../Sources/iggy-bdd/ResourceOptionsSteps.swift | 289 +
bdd/swift/tests/Sources/iggy-bdd/Runner.swift | 267 +
bdd/swift/tests/Sources/iggy-bdd/main.swift | 80 +
core/ai/mcp/Cargo.toml | 2 +-
core/ai/mcp/README.md | 6 +
core/ai/mcp/src/service/mod.rs | 30 +-
core/ai/mcp/src/service/requests.rs | 4 +-
core/bench/Cargo.toml | 2 +-
core/bench/report/src/types/hardware.rs | 26 +-
.../src/actors/consumer/benchmark_consumer.rs | 2 +-
.../bench/src/actors/consumer/client/high_level.rs | 77 +-
core/bench/src/actors/consumer/client/interface.rs | 2 +-
core/bench/src/actors/consumer/client/low_level.rs | 187 +-
.../actors/consumer/typed_benchmark_consumer.rs | 2 +-
.../bench/src/actors/producer/client/high_level.rs | 14 +-
.../typed_benchmark_producing_consumer.rs | 2 +-
core/bench/src/args/common.rs | 52 +-
core/bench/src/utils/cpu_name.rs | 19 +-
core/bench/src/utils/mod.rs | 7 +-
core/binary_protocol/Cargo.toml | 2 +-
core/binary_protocol/src/batch.rs | 254 +-
core/binary_protocol/src/codes.rs | 8 +-
core/binary_protocol/src/consensus/command.rs | 8 +-
core/binary_protocol/src/consensus/header.rs | 179 +-
core/binary_protocol/src/consensus/mod.rs | 19 +-
.../src/consensus/primary_rebalance.rs | 49 +-
core/binary_protocol/src/consensus/request.rs | 25 +-
core/binary_protocol/src/dispatch.rs | 27 +-
core/binary_protocol/src/lib.rs | 46 +-
core/binary_protocol/src/primitives/mod.rs | 1 +
.../src/primitives/partition_assignment.rs | 75 +-
.../src/primitives/partition_status.rs | 153 +
.../src/requests/messages/fetch_messages.rs | 615 ++
core/binary_protocol/src/requests/messages/mod.rs | 10 +-
.../src/requests/messages/poll_messages.rs | 12 +-
.../src/requests/messages/send_messages.rs | 20 +-
.../src/requests/messages/wait_for_messages.rs | 261 -
.../create_partitions_with_assignments.rs | 10 +-
.../src/requests/system/finalize_session.rs | 105 +-
core/binary_protocol/src/requests/system/mod.rs | 2 +-
.../src/requests/system/retire_sessions.rs | 59 +-
.../topics/create_topic_with_assignments.rs | 53 +-
.../src/responses/messages/fetch_messages.rs | 657 ++
core/binary_protocol/src/responses/messages/mod.rs | 7 +-
.../src/responses/messages/wait_for_messages.rs | 89 -
.../src/responses/topics/get_topic.rs | 82 +-
core/binary_protocol/src/version.rs | 29 +-
core/cli/Cargo.toml | 2 +-
.../binary_consumer_offsets/get_consumer_offset.rs | 9 +-
.../src/commands/binary_consumer_offsets/mod.rs | 10 +
.../binary_consumer_offsets/set_consumer_offset.rs | 61 +-
.../src/commands/binary_message/poll_messages.rs | 278 +-
core/cli/src/commands/binary_topics/get_topic.rs | 26 +-
core/common/Cargo.toml | 4 +-
...es_fixtures.rs => deferred_polling_fixtures.rs} | 2 +-
.../examples/deferred_polling_fixtures/schema.rs | 866 ++
core/common/examples/resource_options_fixtures.rs | 2 +-
core/common/fixtures/deferred_polling.json | 610 ++
core/common/fixtures/resource_options.json | 35 +-
core/common/src/consumer_group_client_state.rs | 71 +-
core/common/src/error/iggy_error.rs | 84 +-
core/common/src/lib.rs | 14 +-
.../src/traits/binary_impls/consumer_groups.rs | 23 +-
.../src/traits/binary_impls/consumer_offsets.rs | 61 +-
core/common/src/traits/binary_impls/messages.rs | 452 +-
core/common/src/traits/binary_impls/mod.rs | 7 +-
core/common/src/traits/binary_transport.rs | 486 +-
core/common/src/traits/client.rs | 6 +
core/common/src/traits/consumer_group_client.rs | 18 +-
core/common/src/traits/consumer_offset_client.rs | 26 +-
core/common/src/traits/message_client.rs | 275 +-
core/common/src/traits/mod.rs | 7 +-
.../configuration/pending_operations_config.rs | 3 +
.../quic_config/quic_client_config.rs | 3 +-
.../quic_config/quic_client_config_builder.rs | 2 +-
.../quic_config/quic_connection_string_options.rs | 5 +-
.../websocket_config/websocket_client_config.rs | 43 +-
core/common/src/types/consumer/consumer_group.rs | 12 +
.../src/types/consumer/consumer_offset_info.rs | 75 +-
core/common/src/types/message/commit_outcome.rs | 109 +
.../src/types/message/deferred_poll_options.rs | 86 +-
core/common/src/types/message/fetched_section.rs | 401 +
core/common/src/types/message/mod.rs | 8 +-
core/common/src/types/message/poll_options.rs | 335 +
core/common/src/types/message/polled_messages.rs | 580 +-
core/common/src/types/message/polling_strategy.rs | 148 +-
core/common/src/types/options/catalog.rs | 74 +-
core/common/src/types/options/codec.rs | 12 +-
core/common/src/types/options/key.rs | 1 +
core/common/src/types/options/mod.rs | 38 +-
core/common/src/types/partition/mod.rs | 11 +
core/common/src/types/streaming_stats.rs | 30 +
core/common/src/utils/crypto.rs | 16 +-
core/common/src/wire_conversions.rs | 22 +-
core/common/tests/deferred_polling_fixtures.rs | 195 +
core/common/tests/resource_options_fixtures.rs | 6 +-
core/configs/Cargo.toml | 1 +
core/configs/src/lib.rs | 3 +-
core/configs/src/server_config/cluster.rs | 270 +-
core/configs/src/server_config/defaults.rs | 12 +
core/configs/src/server_config/displays.rs | 14 +-
core/configs/src/server_config/external_auth.rs | 204 +
core/configs/src/server_config/mod.rs | 1 +
core/configs/src/server_config/partition.rs | 59 +-
core/configs/src/server_config/server.rs | 3 +
core/configs/src/server_config/validators.rs | 6 +
core/connectors/runtime/Cargo.toml | 2 +-
core/connectors/runtime/README.md | 43 +-
.../example_config/connectors/iceberg_sink.toml | 5 +-
core/connectors/runtime/src/configs/connectors.rs | 17 +-
core/connectors/runtime/src/exactly_once.rs | 613 ++
core/connectors/runtime/src/main.rs | 4 +
core/connectors/runtime/src/manager/sink.rs | 124 +-
core/connectors/runtime/src/manager/source.rs | 13 +-
core/connectors/runtime/src/plugin_instance.rs | 324 +
core/connectors/runtime/src/sink.rs | 526 +-
core/connectors/runtime/src/source.rs | 408 +-
core/connectors/runtime/src/stats.rs | 17 +-
core/connectors/sdk/Cargo.toml | 3 +-
core/connectors/sdk/README.md | 4 +
core/connectors/sdk/src/log.rs | 27 +-
core/connectors/sdk/src/sink.rs | 8 +-
core/connectors/sdk/src/source.rs | 8 +-
core/connectors/sdk/tests/plugin_logging.rs | 100 +
core/connectors/sinks/iceberg_sink/Cargo.toml | 3 +-
core/connectors/sinks/iceberg_sink/README.md | 29 +-
core/connectors/sinks/iceberg_sink/config.toml | 2 +-
core/connectors/sinks/iceberg_sink/src/lib.rs | 9 +-
core/connectors/sinks/iceberg_sink/src/props.rs | 31 +-
.../iceberg_sink/src/router/dynamic_router.rs | 22 +-
.../sinks/iceberg_sink/src/router/mod.rs | 7 +-
core/connectors/sinks/iceberg_sink/src/sink.rs | 7 +-
core/connectors/sources/README.md | 5 +
core/consensus/src/client_table.rs | 12 +-
core/consensus/src/dvc_merge.rs | 67 +
core/consensus/src/impls.rs | 1594 +++-
core/consensus/src/lib.rs | 7 +
core/consensus/src/observability.rs | 10 +
core/consensus/src/plane_helpers.rs | 482 +-
core/consensus/src/replica_set.rs | 168 +
core/consensus/src/replication.rs | 1206 +++
core/consensus/src/vsr_timeout.rs | 10 +-
core/integration/src/harness/ext_auth_server.rs | 218 +
core/integration/src/harness/helpers.rs | 207 +-
core/integration/src/harness/mod.rs | 6 +-
.../test_consumer_offset_external_group_command.rs | 9 +-
.../tests/cli/message/test_message_send_command.rs | 16 +-
.../message/test_message_send_from_file_command.rs | 9 +-
.../tests/cli/topic/test_topic_get_command.rs | 4 +-
core/integration/tests/cluster/chaos_monkey.rs | 101 +-
.../tests/cluster/client_table_restart.rs | 53 +-
.../tests/cluster/consumer_offset_quota.rs | 9 +-
core/integration/tests/cluster/crash_durability.rs | 24 +-
.../tests/cluster/crash_offset_reuse.rs | 8 +-
.../tests/cluster/crash_recovery_corruption.rs | 8 +-
.../tests/cluster/fast_primary_rejoin.rs | 8 +-
.../tests/cluster/idempotent_producer.rs | 509 +
core/integration/tests/cluster/mod.rs | 2 +
.../cluster/multi_shard_partition_convergence.rs | 8 +-
.../tests/cluster/parked_frame_redispatch.rs | 8 +-
core/integration/tests/cluster/partition_dedup.rs | 34 +-
.../tests/cluster/partition_primary_routing.rs | 340 +-
.../tests/cluster/partition_state_transfer.rs | 613 +-
.../tests/cluster/register_forwarding.rs | 8 +-
core/integration/tests/cluster/replica_links.rs | 8 +-
.../tests/cluster/replication_factor.rs | 959 ++
.../tests/cluster/rolling_sigkill_repro.rs | 8 +-
.../integration/tests/cluster/stream_encryption.rs | 8 +-
.../tests/cluster/stream_key_rotation.rs | 8 +-
.../elasticsearch/elasticsearch_source.rs | 47 +-
.../tests/connectors/http/http_source.rs | 12 +-
.../tests/connectors/influxdb/influxdb_source.rs | 38 +-
.../connectors/influxdb/influxdb_source_formats.rs | 84 +-
.../connectors/influxdb/influxdb_source_v3.rs | 38 +-
.../tests/connectors/mqtt/mqtt_source.rs | 41 +-
.../tests/connectors/postgres/postgres_source.rs | 111 +-
.../connectors/postgres/postgres_source_cdc.rs | 12 +-
.../tests/connectors/random_source_liveness.rs | 14 +-
.../tests/connectors/runtime/http_state.rs | 275 +-
...ttp_state.toml => http_state_exactly_once.toml} | 2 +-
.../random_source.toml | 12 +-
.../tests/connectors/runtime/sink_clients.rs | 59 +-
.../tests/data_integrity/storage_compat.rs | 346 +-
.../verify_auto_commit_offset_replicates.rs | 15 +-
.../verify_consumer_group_partition_assignment.rs | 473 +-
core/integration/tests/sdk/consumer_group.rs | 22 +-
.../tests/sdk/consumer_group_membership.rs | 381 +-
core/integration/tests/sdk/consumer_offset.rs | 44 +-
core/integration/tests/sdk/consumer_shutdown.rs | 13 +-
core/integration/tests/sdk/decode_diagnostics.rs | 151 +
core/integration/tests/sdk/mod.rs | 1 +
core/integration/tests/sdk/options.rs | 15 +-
core/integration/tests/sdk/producer/background.rs | 64 +-
core/integration/tests/sdk/producer/mod.rs | 8 +-
core/integration/tests/sdk/stream_builder.rs | 6 +-
.../tests/server/consumer_offset_quota_vsr.rs | 37 +-
core/integration/tests/server/delete_segments.rs | 7 +
.../tests/server/descriptor_exhaustion_vsr.rs | 17 +-
core/integration/tests/server/external_auth.rs | 431 +
core/integration/tests/server/http_vsr.rs | 6 +-
core/integration/tests/server/mod.rs | 1 +
.../tests/server/partition_view_durability_vsr.rs | 8 +-
.../tests/server/pipelined_frames_vsr.rs | 136 +-
.../integration/tests/server/poll_semantics_vsr.rs | 1047 ++-
.../server/scenarios/authentication_scenario.rs | 39 +-
.../concurrent_produce_consume_scenario.rs | 10 +-
...umer_group_auto_commit_reconnection_scenario.rs | 15 +-
...er_group_new_messages_after_restart_scenario.rs | 8 +-
.../consumer_group_offset_cleanup_scenario.rs | 15 +-
...h_multiple_clients_polling_messages_scenario.rs | 46 +-
...with_single_client_polling_messages_scenario.rs | 33 +-
.../consumer_timestamp_polling_scenario.rs | 19 +-
.../server/scenarios/delete_segments_scenario.rs | 119 +-
.../tests/server/scenarios/encryption_scenario.rs | 40 +-
.../scenarios/external_group_offsets_scenario.rs | 8 +-
.../server/scenarios/message_cleanup_scenario.rs | 53 +-
.../server/scenarios/message_headers_scenario.rs | 8 +-
.../server/scenarios/message_size_scenario.rs | 41 +-
core/integration/tests/server/scenarios/mod.rs | 40 +-
.../tests/server/scenarios/offset_scenario.rs | 71 +-
.../tests/server/scenarios/permissions_scenario.rs | 184 +-
.../scenarios/read_during_persistence_scenario.rs | 8 +-
.../scenarios/reconnect_after_restart_scenario.rs | 66 +-
.../scenarios/restart_offset_skip_scenario.rs | 9 +-
.../scenarios/segment_rotation_race_scenario.rs | 2 +-
.../scenarios/single_message_per_batch_scenario.rs | 8 +-
.../stale_client_consumer_group_scenario.rs | 79 +-
.../tests/server/scenarios/system_scenario.rs | 33 +-
.../tests/server/scenarios/tcp_tls_scenario.rs | 9 +-
.../tests/server/scenarios/timestamp_scenario.rs | 44 +-
.../server/scenarios/websocket_tls_scenario.rs | 9 +-
core/integration/tests/server/unknown_code_vsr.rs | 4 +-
core/kafka_wire/src/api.rs | 16 +-
core/kafka_wire/src/records.rs | 42 +-
core/message_bus/src/installer/conn_info.rs | 19 +
core/message_bus/src/replica/handshake.rs | 25 +-
core/message_bus/src/transports/quic.rs | 237 +-
core/metadata/benches/change_log.rs | 1 +
core/metadata/src/applied_frontier.rs | 68 +-
core/metadata/src/change_log/current.rs | 1 +
core/metadata/src/change_log/tests.rs | 1 +
core/metadata/src/impls/metadata.rs | 375 +-
core/metadata/src/impls/placement.rs | 579 +-
core/metadata/src/impls/recovery.rs | 3 +
core/metadata/src/lib.rs | 2 +-
core/metadata/src/stm/authz.rs | 11 +
core/metadata/src/stm/consumer_group.rs | 105 +-
core/metadata/src/stm/lifecycle.rs | 264 +-
core/metadata/src/stm/mod.rs | 1 +
core/metadata/src/stm/partition_directory.rs | 519 ++
core/metadata/src/stm/result.rs | 2 +
core/metadata/src/stm/snapshot.rs | 58 +-
core/metadata/src/stm/stream.rs | 1373 ++-
core/partitions/src/consumer_offset_capacity.rs | 68 +
core/partitions/src/iggy_partition.rs | 3555 ++++++-
core/partitions/src/iggy_partitions.rs | 19 +
core/partitions/src/install_backup.rs | 5 +
core/partitions/src/io.rs | 60 +-
core/partitions/src/journal.rs | 1669 +++-
core/partitions/src/lib.rs | 12 +-
core/partitions/src/log.rs | 10 +
core/partitions/src/persistence.rs | 11 +
core/partitions/src/poll_plan.rs | 227 +-
core/partitions/src/producer_state.rs | 535 ++
core/partitions/src/repair_memory.rs | 141 +
core/partitions/src/state_transfer.rs | 2380 ++++-
core/partitions/src/types.rs | 6 +-
core/sdk/Cargo.toml | 2 +-
core/sdk/README.md | 534 +-
core/sdk/src/binary/mod.rs | 17 +-
.../binary_consumer_group_client.rs | 16 +-
.../binary_consumer_offset_client.rs | 24 +-
.../src/client_wrappers/binary_message_client.rs | 96 +-
core/sdk/src/client_wrappers/client_wrapper.rs | 105 +-
core/sdk/src/clients/binary_consumer_group.rs | 12 +-
core/sdk/src/clients/binary_consumer_offset.rs | 16 +-
core/sdk/src/clients/binary_message.rs | 293 +-
core/sdk/src/clients/client.rs | 348 +-
core/sdk/src/clients/consumer.rs | 3907 +-------
core/sdk/src/clients/consumer/deferred.rs | 1954 ----
core/sdk/src/clients/consumer/tests.rs | 347 +
core/sdk/src/clients/consumer/tests/commits.rs | 983 ++
core/sdk/src/clients/consumer/tests/polling.rs | 1259 +++
core/sdk/src/clients/consumer_builder.rs | 117 +-
core/sdk/src/clients/mod.rs | 10 +-
core/sdk/src/clients/producer.rs | 588 +-
core/sdk/src/clients/producer_builder.rs | 30 +
core/sdk/src/clients/producer_idempotence.rs | 308 +
core/sdk/src/clients/reader.rs | 1979 ++++
core/sdk/src/clients/reader/cluster_tests.rs | 1397 +++
core/sdk/src/clients/reader/fixtures.rs | 210 +
core/sdk/src/clients/reader/membership.rs | 216 +
core/sdk/src/clients/reader/progress.rs | 815 ++
core/sdk/src/clients/reader/worker.rs | 6107 ++++++++++++
core/sdk/src/clients/reader_builder.rs | 341 +
core/sdk/src/consumer_ext/consumer_message_ext.rs | 127 +-
.../sdk/src/consumer_ext/consumer_message_trait.rs | 11 +-
core/sdk/src/driver.rs | 2616 +++++-
core/sdk/src/driver/route_cache.rs | 32 +-
core/sdk/src/http/consumer_offsets.rs | 54 +-
core/sdk/src/http/http_client.rs | 643 +-
core/sdk/src/http/messages.rs | 744 +-
core/sdk/src/http/scripted_server.rs | 85 +-
core/sdk/src/lib.rs | 41 +-
core/sdk/src/links/dial.rs | 55 +
core/sdk/src/links/fake_cluster.rs | 32 +-
core/sdk/src/links/mod.rs | 76 +-
core/sdk/src/links/mux.rs | 144 +-
core/sdk/src/links/quic.rs | 232 +-
core/sdk/src/prelude.rs | 53 +-
core/sdk/src/quic/quic_client.rs | 16 +-
core/sdk/src/session_owner.rs | 33 +-
core/sdk/src/session_owner/lanes.rs | 665 +-
core/sdk/src/session_owner/producer_ids.rs | 135 +
.../stream_builder/build/build_iggy_consumer.rs | 10 +-
.../stream_builder/config/config_iggy_consumer.rs | 163 +-
.../stream_builder/config/config_iggy_stream.rs | 57 +-
core/sdk/src/tcp/tcp_client.rs | 191 +-
core/sdk/tests/send_future_depth.rs | 78 +
core/server/Cargo.toml | 2 +-
core/server/README.md | 133 +-
core/server/config.toml | 114 +-
core/server/server.http | 17 +-
core/server/src/boot/mod.rs | 46 +
core/server/src/boot/recovery.rs | 21 +-
core/server/src/boot/threads.rs | 2 +
core/server/src/boot/topology.rs | 1 +
core/server/src/cluster_meta.rs | 1 +
core/server/src/consumer_group.rs | 1 +
core/server/src/consumer_group/lease.rs | 182 +-
core/server/src/consumer_group/liveness.rs | 1574 +++-
core/server/src/dispatch/authz.rs | 97 +-
core/server/src/dispatch/failure.rs | 7 +
core/server/src/dispatch/fetch.rs | 3845 ++++++++
core/server/src/dispatch/login_error.rs | 16 +-
core/server/src/dispatch/mod.rs | 555 +-
core/server/src/dispatch/partition.rs | 233 +-
core/server/src/dispatch/reads.rs | 235 +-
core/server/src/dispatch/segment_delete.rs | 5 +-
core/server/src/dispatch/session_ops.rs | 311 +-
core/server/src/dispatch/submit.rs | 26 +-
core/server/src/dispatch/test_support.rs | 97 +-
core/server/src/external_auth.rs | 728 ++
core/server/src/http.rs | 6 +-
core/server/src/http/error.rs | 14 +
core/server/src/http/forward.rs | 16 +-
core/server/src/http/handlers.rs | 180 +-
core/server/src/http/metrics.rs | 31 +-
core/server/src/http/reads.rs | 3 +
core/server/src/http/reply.rs | 9 +-
core/server/src/http/state.rs | 42 +-
core/server/src/http/wire.rs | 3 +-
core/server/src/lib.rs | 1 +
core/server/src/main.rs | 3 +-
core/server/src/namespace.rs | 100 +
core/server/src/partition_helpers.rs | 303 +-
core/server/src/partition_reconciler.rs | 479 +-
core/server/src/reply_frame.rs | 114 +-
core/server/src/responses.rs | 121 +-
core/server/src/rewrite.rs | 18 +-
core/server/src/server_error.rs | 20 +
core/server/src/session_manager.rs | 226 +-
core/server/src/sysinfo_probe.rs | 12 +-
core/server_common/src/consensus_message.rs | 97 +-
core/server_common/src/iobuf.rs | 6 +
core/shard/src/lib.rs | 2860 +++++-
core/shard/src/metrics.rs | 373 +-
core/shard/src/partition_io.rs | 9822 +++++++++++++-------
core/shard/src/poll.rs | 271 +-
core/shard/src/poll/completion_tests.rs | 4 +
core/shard/src/poll/deferred.rs | 1636 +++-
core/shard/src/poll/deferred_tests.rs | 1686 +++-
core/shard/src/poll/test_support.rs | 87 +-
core/shard/src/primary_rebalance.rs | 548 +-
core/shard/src/primary_rebalance/tests.rs | 608 +-
core/shard/src/router.rs | 42 +-
core/shard/src/served_reads.rs | 218 +
core/simulator/README.md | 2 +-
core/simulator/src/client.rs | 187 +-
core/simulator/src/deferred_commit_tests.rs | 773 ++
core/simulator/src/idempotent_producer_tests.rs | 231 +
core/simulator/src/lib.rs | 1214 ++-
core/simulator/src/packet.rs | 53 +-
core/simulator/src/readiness_mirror_tests.rs | 166 +
core/simulator/src/replication_flow_tests.rs | 152 +
core/simulator/src/slow_replica_tests.rs | 535 +-
core/simulator/src/stale_prepare_commit_tests.rs | 85 +-
.../src/workload/ops/create_partitions.rs | 4 +-
core/simulator/src/workload/ops/create_topic.rs | 1 +
core/simulator/src/workload/state_checker.rs | 56 +-
core/system_stats/src/lib.rs | 19 +-
.../Iggy_SDK.Examples.Basic.Consumer.csproj | 8 +-
.../Iggy_SDK.Examples.Basic.Producer.csproj | 10 +-
...ggy_SDK.Examples.GettingStarted.Consumer.csproj | 4 +-
...ggy_SDK.Examples.GettingStarted.Producer.csproj | 4 +-
.../Iggy_SDK.Examples.Shared.csproj | 2 +-
...gy_SDK.Examples.MessageEnvelope.Consumer.csproj | 10 +-
...gy_SDK.Examples.MessageEnvelope.Producer.csproj | 10 +-
...ggy_SDK.Examples.MessageHeaders.Consumer.csproj | 4 +-
...ggy_SDK.Examples.MessageHeaders.Producer.csproj | 4 +-
.../Iggy_SDK.Examples.NewSdk.Consumer.csproj | 10 +-
.../Iggy_SDK.Examples.NewSdk.Consumer/Program.cs | 12 +-
.../Iggy_SDK.Examples.NewSdk.Producer.csproj | 10 +-
.../Iggy_SDK.Examples.TcpTls.Consumer.csproj | 4 +-
.../Iggy_SDK.Examples.TcpTls.Producer.csproj | 4 +-
examples/go/README.md | 9 +
examples/go/getting-started/consumer/main.go | 7 +-
examples/go/getting-started/consumer/main_test.go | 6 +-
examples/go/reader-consumer/main.go | 102 +
examples/java/README.md | 9 +
examples/java/build.gradle.kts | 5 +
.../iggy/examples/reader/ReaderConsumer.java | 89 +
examples/node/package-lock.json | 10 +-
examples/node/package.json | 2 +-
examples/php/src/common.php | 13 +-
examples/python/basic/consumer.py | 25 +-
examples/python/getting-started/consumer.py | 18 +-
examples/python/high-level/consumer.py | 30 +-
examples/python/message-headers/common.py | 18 +-
examples/python/uv.lock | 2 +-
examples/rust/README.md | 4 +-
examples/rust/src/getting-started/consumer/main.rs | 8 +-
.../message-compression/consumer/main.rs | 4 +-
examples/rust/src/multi-tenant/consumer/main.rs | 8 +-
examples/rust/src/new-sdk/consumer/main.rs | 50 +-
examples/rust/src/shared/system.rs | 9 +-
.../rust/src/stream-builder/stream-basic/main.rs | 8 +-
.../stream-builder/stream-consumer-config/main.rs | 34 +-
.../src/stream-builder/stream-consumer/main.rs | 8 +-
examples/rust/src/tcp-tls/consumer/main.rs | 8 +-
examples/swift/README.md | 67 +
.../swift/getting-started}/Package.resolved | 0
.../swift/getting-started/Package.swift | 53 +-
.../Sources/Common/ExampleOptions.swift | 90 +
.../getting-started/Sources/consumer/main.swift | 50 +
.../getting-started/Sources/producer/main.swift | 50 +
foreign/cpp/BUILD.bazel | 1 +
foreign/cpp/Cargo.toml | 5 +-
foreign/cpp/MODULE.bazel | 2 +-
foreign/cpp/README.md | 58 +-
foreign/cpp/build.rs | 1 +
foreign/cpp/include/iggy.hpp | 884 +-
foreign/cpp/src/client.cpp | 28 +-
foreign/cpp/src/client.rs | 491 +-
foreign/cpp/src/consumer.rs | 155 +-
foreign/cpp/src/lib.rs | 461 +-
foreign/cpp/src/messages.rs | 102 +
foreign/cpp/src/pending_poll.rs | 149 +
foreign/cpp/src/reader.cpp | 336 +
foreign/cpp/src/reader.rs | 311 +
foreign/cpp/src/type_conversion.rs | 421 +-
foreign/cpp/src/type_conversions.cpp | 12 +-
foreign/cpp/tests/e2e/client.cpp | 49 +-
foreign/cpp/tests/e2e/consumer_group.cpp | 104 +-
foreign/cpp/tests/e2e/message.cpp | 281 +-
foreign/cpp/tests/e2e/partition_reader.cpp | 401 +
foreign/cpp/tests/e2e/reader.cpp | 286 +
foreign/cpp/tests/e2e/resource_options.cpp | 22 +-
foreign/cpp/tests/e2e/test_helpers.hpp | 16 +
foreign/cpp/tests/e2e/topic.cpp | 10 +-
foreign/cpp/tests/fixtures/deferred_polling.json | 610 ++
foreign/cpp/tests/fixtures/resource_options.json | 35 +-
foreign/cpp/tests/unit/poll_options.cpp | 79 +
foreign/cpp/tests/unit/resource_options.cpp | 2 +
foreign/cpp/tests/unit/unit_tests.cpp | 10 +-
foreign/csharp/Directory.Packages.props | 4 +-
.../Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj | 3 +
.../StepDefinitions/DeferredPollingSteps.cs | 360 +
.../DeferredPollTests.cs | 196 +
.../Fixtures/IggyServerFixture.cs | 6 +
.../HeaderEncryptionIntegrationTests.cs | 6 +-
.../IggyConsumerTests.cs | 188 +-
.../IggyTypedConsumerTests.cs | 36 +-
.../MessageEncryptionIntegrationTests.cs | 52 +-
.../Iggy_SDK.Tests.Integration/OptionsTests.cs | 31 +-
.../Iggy_SDK.Tests.Integration/TopicsTests.cs | 1 +
.../Vsr/VsrConsumerGroupTests.cs | 101 +-
.../Configuration/IggyClientConfigurator.cs | 9 +-
.../csharp/Iggy_SDK/Consumers/AutoCommitMode.cs | 41 -
.../Iggy_SDK/Consumers/IggyConsumer.Logging.cs | 139 -
.../Iggy_SDK/Consumers/IggyConsumer.Rented.cs | 241 +-
foreign/csharp/Iggy_SDK/Consumers/IggyConsumer.cs | 1064 +--
.../Iggy_SDK/Consumers/IggyConsumerBuilder.cs | 77 +-
.../Iggy_SDK/Consumers/IggyConsumerConfig.cs | 39 +-
.../csharp/Iggy_SDK/Consumers/IggyConsumerOfT.cs | 122 +-
.../csharp/Iggy_SDK/Consumers/PartitionReader.cs | 1788 ++++
foreign/csharp/Iggy_SDK/Consumers/ReadException.cs | 74 +
foreign/csharp/Iggy_SDK/Consumers/ReaderBuilder.cs | 198 +
.../csharp/Iggy_SDK/Consumers/ReceivedMessage.cs | 18 +-
.../Iggy_SDK/Consumers/ReceivedRentedMessage.cs | 15 +-
.../Iggy_SDK/Contracts/Auth/GlobalPermissions.cs | 3 +-
foreign/csharp/Iggy_SDK/Contracts/Checkpoint.cs | 52 +
foreign/csharp/Iggy_SDK/Contracts/CommitPolicy.cs | 156 +
.../Iggy_SDK/Contracts/DeferredPollOptions.cs | 179 +
.../csharp/Iggy_SDK/Contracts/FetchedMessages.cs | 207 +
foreign/csharp/Iggy_SDK/Contracts/OptionKeys.cs | 4 +-
.../csharp/Iggy_SDK/Contracts/PartitionResponse.cs | 11 +
foreign/csharp/Iggy_SDK/Contracts/PollOptions.cs | 111 +
.../csharp/Iggy_SDK/Contracts/PolledMessages.cs | 60 +
.../csharp/Iggy_SDK/Contracts/StreamPermissions.cs | 3 +-
.../csharp/Iggy_SDK/Contracts/Tcp/TcpContracts.cs | 233 +-
.../csharp/Iggy_SDK/Contracts/TopicOptionKey.cs | 5 +-
foreign/csharp/Iggy_SDK/Contracts/TopicOptions.cs | 17 +
.../csharp/Iggy_SDK/Contracts/TopicPermissions.cs | 3 +-
.../Exceptions/MalformedResponseException.cs | 11 +
.../Exceptions/MessageDecryptionException.cs | 11 +-
...on.cs => VsrFetchProgressUncertainException.cs} | 31 +-
.../Iggy_SDK/Exceptions/VsrLaneBlockedException.cs | 36 +-
...tion.cs => VsrPartitionLaneBlockedException.cs} | 32 +-
.../VsrRequestOutcomeUnknownException.cs | 4 +-
foreign/csharp/Iggy_SDK/Extensions/Extensions.cs | 4 +-
.../Iggy_SDK/Extensions/IggyClientExtension.cs | 15 +
.../csharp/Iggy_SDK/Factory/IggyClientFactory.cs | 14 +-
foreign/csharp/Iggy_SDK/IggyClient/IIggyClient.cs | 12 +-
.../csharp/Iggy_SDK/IggyClient/IIggyConsumer.cs | 54 +-
foreign/csharp/Iggy_SDK/IggyClient/IIggyOffset.cs | 54 +
.../Implementations/HttpMessageStream.cs | 360 +-
.../TcpMessageStream.PollRouting.cs | 352 +-
.../Implementations/TcpMessageStream.Vsr.cs | 25 +-
.../IggyClient/Implementations/TcpMessageStream.cs | 222 +-
.../Implementations/TransientHttpRetryHandler.cs | 33 +-
foreign/csharp/Iggy_SDK/Iggy_SDK.csproj | 3 +-
foreign/csharp/Iggy_SDK/Kinds/PollingStrategy.cs | 32 +
foreign/csharp/Iggy_SDK/Mappers/BinaryMapper.cs | 217 +-
foreign/csharp/Iggy_SDK/Utils/CommandCodes.cs | 2 +-
foreign/csharp/Iggy_SDK/Vsr/CommitOutcome.cs | 53 +
.../Iggy_SDK/Vsr/ConsumerGroupClientState.cs | 11 +
.../Vsr/IConsumerGroupAssignmentProvider.cs | 40 +
.../Vsr/{Command.cs => IPartitionFetchClient.cs} | 19 +-
foreign/csharp/Iggy_SDK/Vsr/LoginRegister.cs | 2 +-
foreign/csharp/Iggy_SDK/Vsr/MutationLanes.cs | 263 +-
foreign/csharp/Iggy_SDK/Vsr/VsrConnection.cs | 135 +-
foreign/csharp/Iggy_SDK/Vsr/VsrError.cs | 11 +-
foreign/csharp/Iggy_SDK/Vsr/VsrOperation.cs | 14 +-
.../ClientTests/HttpCommittingPollTests.cs | 234 +
.../ClientTests/HttpDeferredPollTests.cs | 241 +
.../ClientTests/HttpPartitionContextTests.cs | 21 +-
.../ClientTests/HttpPartitionPollTests.cs | 166 +
.../ClientTests/IggyClientFactoryTests.cs | 15 +
.../ConsumerTests/ConsumerOnReaderTests.cs | 516 +
.../ConsumerSessionGenerationTests.cs | 245 -
.../ConsumerTests/IggyConsumerBuilderTests.cs | 62 +-
.../NoAssignedPartitionBackoffTests.cs | 193 -
.../ConsumerTests/OffsetContinuationTests.cs | 381 -
.../PartitionIncarnationTests.Disposal.cs | 287 -
.../ConsumerTests/PartitionIncarnationTests.cs | 539 --
.../ConsumerTests/PartitionReaderTests.cs | 1286 +++
.../ConsumerTests/PollFailureTests.cs | 457 -
.../Iggy_SDK_Tests/ConsumerTests/ReaderCluster.cs | 432 +
.../ConsumerTests/RentedBatchTests.cs | 110 +
.../ConsumerTests/RentedConsumerTests.cs | 520 --
.../ConsumerTests/RentedTypedConsumerTests.cs | 186 -
.../ContractsTests/DeferredPollContractsTests.cs | 165 +
.../ContractsTests/DeferredPollingFixtureTests.cs | 336 +
.../ContractsTests/FetchMessagesContractsTests.cs | 226 +
.../MessageBatchGoldenVectorTests.cs | 29 +
.../ContractsTests/OffsetContractsTests.cs | 87 +
.../ContractsTests/PollOptionsTests.cs | 134 +
.../Iggy_SDK_Tests/Fixtures/deferred_polling.json | 610 ++
.../Iggy_SDK_Tests/Fixtures/resource_options.json | 35 +-
.../csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj | 3 +
.../Iggy_SDK_Tests/MapperTests/BinaryMapper.cs | 132 +-
.../MapperTests/OptionsBlockGoldenVectorTests.cs | 2 +-
.../MapperTests/ResourceOptionsTests.cs | 3 +-
.../UtilityTests/TopicOptionsTests.cs | 8 +-
.../csharp/Iggy_SDK_Tests/Utils/BinaryFactory.cs | 15 +-
.../VsrTests/ConsumerGroupClientStateTests.cs | 14 +
.../VsrTests/DeferredPollingTests.cs | 534 ++
.../Iggy_SDK_Tests/VsrTests/FetchMessagesTests.cs | 816 ++
foreign/csharp/Iggy_SDK_Tests/VsrTests/MockNode.cs | 218 +-
.../Iggy_SDK_Tests/VsrTests/MutationLaneTests.cs | 156 +-
.../Iggy_SDK_Tests/VsrTests/NativeRecoveryTests.cs | 115 +-
.../VsrTests/PartitionContextTests.cs | 51 -
.../Iggy_SDK_Tests/VsrTests/PartitionPollTests.cs | 246 +
.../Iggy_SDK_Tests/VsrTests/PrimaryPollingTests.cs | 174 +-
.../VsrTests/VsrMultiplexingTests.cs | 38 +-
foreign/csharp/README.md | 274 +-
foreign/go/README.md | 109 +-
.../binary_response_deserializer.go | 212 +-
.../deferred_polling_fixture_test.go | 159 +
.../vsr_response_deserializer_test.go | 251 +
foreign/go/client/iggy_client.go | 3 +
foreign/go/client/reader/consumer.go | 229 +
foreign/go/client/reader/consumer_test.go | 208 +
foreign/go/client/reader/reader.go | 1571 ++++
foreign/go/client/reader/reader_test.go | 1453 +++
.../go/client/tcp/deferred_polling_fixture_test.go | 97 +
foreign/go/client/tcp/tcp_core.go | 110 +-
foreign/go/client/tcp/tcp_core_test.go | 19 +-
foreign/go/client/tcp/tcp_deferred.go | 523 ++
foreign/go/client/tcp/tcp_deferred_test.go | 2052 ++++
foreign/go/client/tcp/tcp_driver.go | 139 +-
foreign/go/client/tcp/tcp_driver_test.go | 158 +-
foreign/go/client/tcp/tcp_group_polling.go | 2 +-
foreign/go/client/tcp/tcp_group_polling_test.go | 2 +-
foreign/go/client/tcp/tcp_link.go | 85 +-
foreign/go/client/tcp/tcp_link_test.go | 31 +
foreign/go/client/tcp/tcp_messaging.go | 122 +-
foreign/go/client/tcp/tcp_offset_management.go | 9 +
foreign/go/client/tcp/tcp_pending.go | 247 +-
foreign/go/client/tcp/tcp_poll_routing.go | 39 +-
foreign/go/client/tcp/tcp_poll_routing_test.go | 101 +-
foreign/go/client/tcp/tcp_replicas_test.go | 2 +-
foreign/go/client/tcp/tcp_topic_cache_test.go | 2 +-
foreign/go/client/tcp/tcp_topic_management_test.go | 15 +-
foreign/go/contracts/checkpoint.go | 69 +
foreign/go/contracts/client.go | 60 +-
foreign/go/contracts/deferred_polling.go | 158 +
foreign/go/contracts/deferred_polling_test.go | 194 +
foreign/go/contracts/message_polling.go | 22 +
foreign/go/contracts/partitions.go | 5 +
foreign/go/contracts/poll_options.go | 180 +
foreign/go/contracts/poll_options_test.go | 91 +
foreign/go/contracts/resource_options_test.go | 2 +
.../go/contracts/testdata/deferred_polling.json | 610 ++
.../go/contracts/testdata/resource_options.json | 35 +-
foreign/go/contracts/topic_options.go | 14 +
foreign/go/contracts/topic_options_test.go | 8 +
foreign/go/contracts/version.go | 2 +-
foreign/go/errors/errors.go | 6 +
foreign/go/errors/errors.yaml | 18 +
foreign/go/errors/errors_gen.go | 56 +
foreign/go/internal/command/code.go | 2 +-
.../command/deferred_polling_fixture_test.go | 186 +
foreign/go/internal/command/message.go | 107 +-
foreign/go/internal/command/message_test.go | 50 +
foreign/go/internal/command/topic.go | 3 +
foreign/go/internal/command/topic_test.go | 43 +
foreign/go/internal/command/update_resource.go | 1 +
.../internal/vsr/deferred_polling_fixture_test.go | 64 +
foreign/go/internal/vsr/envelope.go | 26 +
foreign/go/internal/vsr/envelope_test.go | 37 +
foreign/go/internal/vsr/register.go | 4 +-
foreign/go/internal/vsr/register_test.go | 4 +-
foreign/go/tests/e2e_deferred_test.go | 364 +
foreign/go/tests/e2e_resource_options_test.go | 4 +-
foreign/go/tests/e2e_test.go | 37 +-
foreign/java/README.md | 193 +-
.../kotlin/iggy.java-common-conventions.gradle.kts | 3 +
foreign/java/gradle.properties | 2 +-
.../iggy/client/async/ConsumerOffsetsClient.java | 11 +
.../apache/iggy/client/async/MessagesClient.java | 55 +-
.../iggy/client/async/reader/IggyConsumer.java | 287 +
.../iggy/client/async/reader/PartitionReader.java | 1662 ++++
.../async/reader/PartitionReaderBuilder.java | 143 +
.../iggy/client/async/reader/ReadException.java | 105 +
.../iggy/client/async/reader/ReaderTransport.java | 83 +
.../iggy/client/async/reader/ReceivedMessage.java} | 15 +-
.../iggy/client/async/tcp/AsyncIggyTcpClient.java | 157 +-
.../async/tcp/AsyncIggyTcpClientBuilder.java | 57 +-
.../iggy/client/async/tcp/AsyncTcpConnection.java | 103 +-
.../iggy/client/async/tcp/CommittingRead.java | 118 +
.../client/async/tcp/ConsumerOffsetsTcpClient.java | 11 +
.../iggy/client/async/tcp/EventLoopShutdown.java | 109 +
.../iggy/client/async/tcp/FetchMessages.java | 448 +
.../iggy/client/async/tcp/MessagesTcpClient.java | 197 +-
.../apache/iggy/client/async/tcp/PollRouter.java | 392 +-
.../client/async/tcp/RawPartitionRequests.java | 104 +-
.../iggy/client/async/tcp/TcpReaderTransport.java | 144 +
.../apache/iggy/client/async/tcp/VsrExchange.java | 47 +-
.../client/async/tcp/vsr/ConsensusSession.java | 395 +-
.../iggy/client/async/tcp/vsr/VsrLoginCodec.java | 2 +-
.../client/async/tcp/vsr/VsrRequestEncoder.java | 25 +-
.../client/async/tcp/vsr/VsrResponseHandler.java | 20 +-
.../client/blocking/ConsumerOffsetsClient.java | 10 +
.../iggy/client/blocking/MessagesClient.java | 33 +-
.../blocking/http/ConsumerOffsetsHttpClient.java | 2 +
.../iggy/client/blocking/http/IggyHttpClient.java | 10 +
.../client/blocking/http/InternalHttpClient.java | 231 +-
.../client/blocking/http/MessagesHttpClient.java | 145 +-
.../client/blocking/reader/PartitionReader.java | 125 +
.../iggy/client/blocking/tcp/IggyTcpClient.java | 25 +
.../client/blocking/tcp/IggyTcpClientBuilder.java | 24 +
.../client/blocking/tcp/MessagesTcpClient.java | 20 +-
.../org/apache/iggy/exception/IggyErrorCode.java | 5 +
.../iggy/exception/IggyOperationException.java | 25 +-
.../iggy/exception/IggyValidationException.java | 1 +
.../java/org/apache/iggy/message/AutoCommit.java | 79 +
.../java/org/apache/iggy/message/Checkpoint.java | 79 +
.../{PartitioningKind.java => CommitAfter.java} | 32 +-
.../org/apache/iggy/message/CommitErrorScope.java | 57 +
.../message/{HeaderKind.java => CommitEvery.java} | 52 +-
.../java/org/apache/iggy/message/CommitPolicy.java | 67 +
.../{SendConfirmation.java => DecodeFailure.java} | 15 +-
.../apache/iggy/message/DeferredPollOptions.java | 18 +
.../org/apache/iggy/message/FetchedMessages.java | 99 +
.../java/org/apache/iggy/message/PollOptions.java | 128 +
.../org/apache/iggy/message/PolledMessages.java | 35 +-
.../org/apache/iggy/message/PollingStrategy.java | 42 +-
.../java/org/apache/iggy/partition/Partition.java | 17 +-
.../org/apache/iggy/serde/BytesDeserializer.java | 167 +-
.../java/org/apache/iggy/serde/CommandCode.java | 4 +-
.../java/org/apache/iggy/topic/TopicOptionKey.java | 3 +-
.../java/org/apache/iggy/topic/TopicOptions.java | 13 +
.../java/org/apache/iggy/ProtocolParityTest.java | 2 +-
.../iggy/client/DeferredPollCompatibilityTest.java | 19 +
.../client/async/AsyncPartitionReaderTest.java | 354 +
.../iggy/client/async/reader/FakeTransport.java | 312 +
.../iggy/client/async/reader/IggyConsumerTest.java | 204 +
.../client/async/reader/PartitionReaderTest.java | 1446 +++
.../async/reader/PartitionReaderTestAccess.java | 62 +
.../async/tcp/AsyncIggyTcpClientBuilderTest.java | 13 +
.../tcp/AsyncIggyTcpClientEventLoopGroupTest.java | 38 +-
.../tcp/AsyncIggyTcpClientFailoverSignInTest.java | 3 +-
.../tcp/AsyncIggyTcpClientFetchMessagesTest.java | 1966 ++++
.../tcp/AsyncIggyTcpClientLoginRoutingTest.java | 3 +-
.../AsyncIggyTcpClientPartitionContextTest.java | 86 +-
.../tcp/AsyncIggyTcpClientRawRequestTest.java | 77 +-
.../async/tcp/AsyncIggyTcpClientReaderTest.java | 149 +
.../async/tcp/AsyncIggyTcpClientRecoveryTest.java | 30 +-
.../tcp/AsyncIggyTcpClientReplicaRequestTest.java | 4 +-
.../tcp/AsyncIggyTcpClientSessionRulesTest.java | 3 +-
.../AsyncIggyTcpClientTransientFailoverTest.java | 19 +-
.../tcp/AsyncTcpConnectionConcurrencyTest.java | 9 +-
.../async/tcp/DeferredPollingFixtureTest.java | 294 +
.../client/async/tcp/EventLoopShutdownTest.java | 127 +
.../iggy/client/async/tcp/FetchMessagesTest.java | 177 +
.../iggy/client/async/tcp/PollRouterTest.java | 95 +-
.../client/async/tcp/vsr/ConsensusSessionTest.java | 364 +-
.../client/async/tcp/vsr/VsrOperationTest.java | 3 +-
.../async/tcp/vsr/VsrRequestEncoderTest.java | 54 +
.../async/tcp/vsr/VsrResponseHandlerTest.java | 45 +-
.../iggy/client/blocking/SystemClientBaseTest.java | 24 +-
.../iggy/client/blocking/TopicsClientBaseTest.java | 23 +
.../http/MessagesHttpClientSendContextTest.java | 55 +-
.../blocking/http/MessagesHttpDeferredTest.java | 251 +-
.../client/blocking/http/ObjectMapperTest.java | 43 +
.../blocking/reader/PartitionReaderTest.java | 77 +
.../blocking/tcp/ConsumerGroupsTcpClientTest.java | 9 +-
.../blocking/tcp/MessagesTcpClientFetchTest.java | 153 +
.../client/blocking/tcp/MessagesTcpClientTest.java | 201 +
.../apache/iggy/exception/IggyErrorCodeTest.java | 1 +
.../exception/IggyValidationExceptionTest.java | 2 +
.../org/apache/iggy/message/PollOptionsTest.java | 147 +
.../apache/iggy/serde/BytesDeserializerTest.java | 261 +-
.../org/apache/iggy/topic/TopicDetailsTest.java | 12 +-
.../org/apache/iggy/topic/TopicOptionsTest.java | 6 +-
.../src/test/resources/deferred_polling.json | 610 ++
.../src/test/resources/resource_options.json | 35 +-
foreign/node/README.md | 336 +-
foreign/node/cucumber.json | 2 +-
foreign/node/package-lock.json | 269 +-
foreign/node/package.json | 6 +-
foreign/node/src/bdd/README.md | 2 +
foreign/node/src/bdd/deferred-polling.ts | 329 +
foreign/node/src/bdd/world.ts | 27 +-
foreign/node/src/client/client.connection.ts | 35 +-
foreign/node/src/client/client.operation.test.ts | 134 +-
foreign/node/src/client/client.operation.ts | 198 +-
...ent.utils.test.ts => client.public-api.test.ts} | 38 +-
foreign/node/src/client/client.socket.test.ts | 1444 ++-
foreign/node/src/client/client.socket.ts | 508 +-
foreign/node/src/client/client.type.ts | 21 +-
foreign/node/src/debug-send.ts | 3 +-
foreign/node/src/debug.ts | 3 +-
foreign/node/src/e2e/resource-options.suite.ts | 57 +
foreign/node/src/e2e/tcp.cluster.e2e.ts | 33 +-
foreign/node/src/e2e/tcp.consumer-stream.e2e.ts | 70 +-
foreign/node/src/e2e/tcp.decode-skip.e2e.ts | 96 +
foreign/node/src/e2e/tcp.deferred-poll.e2e.ts | 202 +
foreign/node/src/examples/stream-topic-to-file.ts | 1 -
foreign/node/src/index.ts | 14 +
foreign/node/src/stream/consumer-stream.ts | 350 +-
foreign/node/src/stream/iggy-consumer.ts | 228 +
foreign/node/src/stream/index.ts | 2 +
foreign/node/src/stream/partition-reader.test.ts | 1185 +++
foreign/node/src/stream/partition-reader.ts | 1175 +++
foreign/node/src/wire/command-set.test.ts | 8 +
foreign/node/src/wire/command-set.ts | 23 +-
foreign/node/src/wire/command.code.ts | 2 +-
foreign/node/src/wire/error.code.test.ts | 10 +
foreign/node/src/wire/error.code.ts | 4 +
foreign/node/src/wire/error.utils.ts | 20 +-
.../node/src/wire/fixtures/deferred_polling.json | 610 ++
.../node/src/wire/fixtures/resource_options.json | 35 +-
foreign/node/src/wire/message/checkpoint.ts | 109 +
.../commit-outcome.test.ts} | 49 +-
foreign/node/src/wire/message/commit-outcome.ts | 39 +
.../node/src/wire/message/deferred-poll.utils.ts | 136 +
.../wire/message/fetch-messages.command.test.ts | 350 +
.../src/wire/message/fetch-messages.command.ts | 284 +
foreign/node/src/wire/message/index.ts | 4 +
.../node/src/wire/message/message-batch.test.ts | 34 +
.../src/wire/message/poll-messages.command.test.ts | 96 +
.../node/src/wire/message/poll-messages.command.ts | 171 +-
foreign/node/src/wire/message/poll-options.test.ts | 198 +
foreign/node/src/wire/message/poll-options.ts | 172 +
foreign/node/src/wire/message/poll.utils.ts | 53 +-
foreign/node/src/wire/offset/index.ts | 1 +
foreign/node/src/wire/offset/position.command.ts | 54 +
foreign/node/src/wire/options.utils.ts | 4 +-
.../wire/system/update-resource.command.test.ts | 3 +-
.../src/wire/topic/create-topic.command.test.ts | 14 +
.../node/src/wire/topic/create-topic.command.ts | 16 +
foreign/node/src/wire/topic/topic.utils.test.ts | 132 +-
foreign/node/src/wire/topic/topic.utils.ts | 67 +-
foreign/node/src/wire/vsr/header.test.ts | 41 +
foreign/node/src/wire/vsr/header.ts | 29 +
foreign/node/src/wire/vsr/register.ts | 4 +-
foreign/php/Cargo.toml | 6 +-
foreign/php/README.md | 159 +-
foreign/php/iggy-php.stubs.php | 897 +-
foreign/php/src/client.rs | 605 +-
foreign/php/src/consumer.rs | 404 +-
foreign/php/src/error.rs | 242 +-
foreign/php/src/lib.rs | 30 +-
foreign/php/src/message_iterator.rs | 35 +-
foreign/php/src/options.rs | 4 +
foreign/php/src/pending_poll.rs | 95 +
foreign/php/src/poll_options.rs | 282 +
foreign/php/src/reader.rs | 158 +
foreign/php/src/receive_message.rs | 294 +-
foreign/php/src/sensitive_parameters.rs | 2 +-
foreign/php/src/topic.rs | 72 +-
foreign/php/tests/ErrorTest.php | 25 +-
foreign/php/tests/IggySdkTest.php | 946 +-
foreign/php/tests/RawCommandTest.php | 120 +-
foreign/php/tests/ResourceOptionsTest.php | 69 +-
foreign/php/tests/SensitiveParameterTest.php | 2 +-
foreign/php/tests/TlsTest.php | 13 +-
foreign/php/tests/bootstrap.php | 19 +
foreign/php/tests/fixtures/deferred_polling.json | 610 ++
foreign/php/tests/fixtures/resource_options.json | 35 +-
foreign/python/Cargo.toml | 12 +-
foreign/python/README.md | 148 +-
foreign/python/apache_iggy.pyi | 1113 ++-
foreign/python/pyproject.toml | 2 +-
foreign/python/src/bin/stub_gen.rs | 1 +
foreign/python/src/client.rs | 1044 ++-
foreign/python/src/config.rs | 21 +-
foreign/python/src/consumer.rs | 606 +-
foreign/python/src/event_loop.rs | 48 +
foreign/python/src/lib.rs | 29 +-
foreign/python/src/poll_options.rs | 387 +
foreign/python/src/reader.rs | 257 +
foreign/python/src/receive_message.rs | 411 +-
foreign/python/src/resource_options.rs | 17 +-
foreign/python/src/stats.rs | 2 +-
foreign/python/src/topic.rs | 56 +-
.../python/tests/fixtures/deferred_polling.json | 610 ++
.../python/tests/fixtures/resource_options.json | 35 +-
foreign/python/tests/test_client_config.py | 91 +-
foreign/python/tests/test_consumer_group.py | 874 +-
foreign/python/tests/test_http_config.py | 36 +-
foreign/python/tests/test_message_operations.py | 691 +-
foreign/python/tests/test_partition_reader.py | 644 ++
foreign/python/tests/test_producer.py | 12 +-
foreign/python/tests/test_quic_config.py | 9 +-
foreign/python/tests/test_resource_options.py | 14 +-
foreign/python/tests/test_segment.py | 54 +-
foreign/python/tests/test_tls.py | 15 +-
foreign/python/tests/test_websocket_config.py | 9 +-
foreign/python/tests/utils.py | 30 +
foreign/python/uv.lock | 2 +-
foreign/swift/Examples/Reader/main.swift | 79 +
foreign/{csharp => swift}/LICENSE | 0
NOTICE => foreign/swift/NOTICE | 0
foreign/swift/Package.swift | 7 +-
foreign/swift/README.md | 245 +-
foreign/swift/Sources/Iggy/Client/ClientCore.swift | 20 +-
.../Sources/Iggy/Client/ConnectionString.swift | 471 +
.../Sources/Iggy/Client/ConsumerGroupState.swift | 5 +
.../Sources/Iggy/Client/IggyClient+Messages.swift | 548 +-
foreign/swift/Sources/Iggy/Client/IggyClient.swift | 65 +-
foreign/swift/Sources/Iggy/Client/PollRouter.swift | 539 +-
.../Iggy/Consumer/ConsumerConfiguration.swift | 171 +-
.../swift/Sources/Iggy/Consumer/IggyConsumer.swift | 695 +-
.../Sources/Iggy/Consumer/PartitionReader.swift | 1940 ++++
foreign/swift/Sources/Iggy/Errors/IggyError.swift | 22 +-
.../swift/Sources/Iggy/Errors/IggyErrorCode.swift | 14 +
foreign/swift/Sources/Iggy/Iggy.swift | 5 +-
.../swift/Sources/Iggy/Models/IggyMessage.swift | 54 +
foreign/swift/Sources/Iggy/Models/Messaging.swift | 183 +-
.../swift/Sources/Iggy/Models/PollOptions.swift | 262 +
foreign/swift/Sources/Iggy/Models/Resources.swift | 13 +-
.../swift/Sources/Iggy/Models/TopicOptions.swift | 18 +-
foreign/swift/Sources/Iggy/Protocol/Batch.swift | 61 +-
.../swift/Sources/Iggy/Protocol/CommandCode.swift | 13 +
.../Sources/Iggy/Protocol/ProtocolVersion.swift | 2 +-
foreign/swift/Sources/Iggy/Protocol/Requests.swift | 49 +-
.../swift/Sources/Iggy/Protocol/Responses.swift | 60 +-
foreign/swift/Sources/Iggy/Protocol/VSRFrame.swift | 29 +
.../Sources/Iggy/Transport/TCPConnection.swift | 84 +-
.../swift/Sources/Iggy/Utilities/AsyncMutex.swift | 12 +
.../swift/Tests/IggyE2ETests/ClientE2ETests.swift | 105 +-
.../Tests/IggyE2ETests/ConsumerE2ETests.swift | 30 +-
.../Tests/IggyE2ETests/DeferredPollE2ETests.swift | 187 +
.../Tests/IggyE2ETests/ProducerE2ETests.swift | 4 +-
.../swift/Tests/IggyE2ETests/ReaderE2ETests.swift | 124 +
.../IggyE2ETests/ResourceOptionsE2ETests.swift | 49 +-
.../Tests/IggyTests/ClientTransportTests.swift | 4 +-
.../Tests/IggyTests/ConnectionStringTests.swift | 238 +
foreign/swift/Tests/IggyTests/ConsumerTests.swift | 1839 ++--
.../IggyTests/DeferredPollingVectorTests.swift | 385 +
.../Tests/IggyTests/DeferredRequestTests.swift | 1088 +++
foreign/swift/Tests/IggyTests/ErrorCodeTests.swift | 2 +
.../Tests/IggyTests/Fixtures/deferred_polling.json | 610 ++
foreign/swift/Tests/IggyTests/Fixtures/golden.json | 38 +-
.../Tests/IggyTests/Fixtures/resource_options.json | 35 +-
foreign/swift/Tests/IggyTests/MessagingTests.swift | 24 +-
foreign/swift/Tests/IggyTests/ModelTests.swift | 115 +
.../swift/Tests/IggyTests/ModelVectorTests.swift | 2 +-
.../Tests/IggyTests/ReplicaRequestTests.swift | 4 +-
.../Tests/IggyTests/ResourceOptionsTests.swift | 6 +-
.../Tests/IggyTests/ResponseVectorTests.swift | 120 +-
.../Tests/IggyTests/Support/FakeVSRServer.swift | 137 +-
.../Tests/IggyTests/Support/TestHelpers.swift | 10 +
.../swift/Tests/IggyTests/WireVectorTests.swift | 53 +
foreign/swift/Tools/golden-vectors/src/main.rs | 208 +-
gateways/kafka/Cargo.toml | 5 +-
gateways/kafka/README.md | 215 +-
gateways/kafka/docs/ACL_MAPPING.md | 24 +-
gateways/kafka/docs/AUTHENTICATION.md | 8 +-
gateways/kafka/docs/BRIDGE_MAPPING.md | 31 +-
gateways/kafka/docs/CONSUMER_GROUPS.md | 159 +-
gateways/kafka/docs/IDEMPOTENCE.md | 230 +-
gateways/kafka/docs/OFFSET_STORAGE.md | 51 +-
gateways/kafka/docs/SCOPE.md | 21 +-
gateways/kafka/docs/TEST_SUITE.md | 34 +-
gateways/kafka/src/auth.rs | 66 +-
gateways/kafka/src/bridge/config.rs | 166 +-
gateways/kafka/src/bridge/error.rs | 44 +-
.../kafka/src/bridge/iggy_bridge/change_log.rs | 2037 ++++
.../kafka/src/bridge/iggy_bridge/cluster_id.rs | 12 +-
.../src/bridge/iggy_bridge/coordinator_log.rs | 699 ++
gateways/kafka/src/bridge/iggy_bridge/fetch.rs | 262 +-
.../kafka/src/bridge/iggy_bridge/group_index.rs | 352 +-
.../kafka/src/bridge/iggy_bridge/group_offsets.rs | 19 +-
gateways/kafka/src/bridge/iggy_bridge/mod.rs | 230 +-
gateways/kafka/src/bridge/iggy_bridge/offsets.rs | 35 +-
gateways/kafka/src/bridge/iggy_bridge/produce.rs | 84 +-
.../kafka/src/bridge/iggy_bridge/producer_ids.rs | 170 +
gateways/kafka/src/bridge/mod.rs | 15 +-
gateways/kafka/src/bridge/topic_map.rs | 67 +
gateways/kafka/src/coordinator/mod.rs | 1244 +++
gateways/kafka/src/coordinator/partition.rs | 1240 +++
gateways/kafka/src/coordinator/record.rs | 713 ++
gateways/kafka/src/coordinator/replay.rs | 1026 ++
gateways/kafka/src/group/mod.rs | 364 +-
gateways/kafka/src/group/state.rs | 595 +-
gateways/kafka/src/lib.rs | 3 +-
gateways/kafka/src/main.rs | 37 +-
gateways/kafka/src/protocol/api.rs | 102 +-
.../kafka/src/protocol/handlers/alter_configs.rs | 1 +
.../src/protocol/handlers/create_partitions.rs | 12 +-
.../kafka/src/protocol/handlers/create_topics.rs | 25 +-
.../kafka/src/protocol/handlers/delete_groups.rs | 51 +-
.../kafka/src/protocol/handlers/delete_topics.rs | 13 +-
.../src/protocol/handlers/describe_cluster.rs | 11 +-
.../kafka/src/protocol/handlers/describe_groups.rs | 27 +-
gateways/kafka/src/protocol/handlers/fetch.rs | 1274 ++-
.../src/protocol/handlers/find_coordinator.rs | 167 +-
.../protocol/handlers/incremental_alter_configs.rs | 1 +
.../src/protocol/handlers/init_producer_id.rs | 54 +-
.../kafka/src/protocol/handlers/list_groups.rs | 36 +-
.../kafka/src/protocol/handlers/list_offsets.rs | 417 +-
gateways/kafka/src/protocol/handlers/metadata.rs | 157 +-
gateways/kafka/src/protocol/handlers/mod.rs | 24 +-
.../kafka/src/protocol/handlers/offset_commit.rs | 293 +-
.../kafka/src/protocol/handlers/offset_delete.rs | 32 +-
.../kafka/src/protocol/handlers/offset_fetch.rs | 390 +-
gateways/kafka/src/protocol/handlers/produce.rs | 154 +-
gateways/kafka/src/server.rs | 201 +-
.../kafka/tests/bridge_iggy_integration_tests.rs | 16 +-
gateways/kafka/tests/cluster_failover_tests.rs | 2351 +++++
.../kafka/tests/cluster_id_real_bridge_tests.rs | 10 +-
gateways/kafka/tests/common/deployment.rs | 467 +
gateways/kafka/tests/common/docker_clients.rs | 296 +
gateways/kafka/tests/common/gateway_process.rs | 4 +
gateways/kafka/tests/common/gateways.rs | 396 +
gateways/kafka/tests/common/iggy_server.rs | 193 +-
gateways/kafka/tests/common/poll_relay.rs | 218 +
gateways/kafka/tests/configs_handler_tests.rs | 1 +
gateways/kafka/tests/coordinator_cluster_tests.rs | 217 +
.../kafka/tests/coordinator_real_bridge_tests.rs | 684 ++
.../tests/create_partitions_real_bridge_tests.rs | 30 +-
.../kafka/tests/create_topics_real_bridge_tests.rs | 24 +-
.../kafka/tests/delete_topics_real_bridge_tests.rs | 24 +-
gateways/kafka/tests/fetch_real_bridge_tests.rs | 242 +-
gateways/kafka/tests/kafka_client_e2e_tests.rs | 375 +-
.../kafka/tests/list_offsets_real_bridge_tests.rs | 130 +-
.../tests/metadata_changes_real_bridge_tests.rs | 475 +
gateways/kafka/tests/metadata_real_bridge_tests.rs | 1 +
.../kafka/tests/offset_groups_real_bridge_tests.rs | 8 +-
gateways/kafka/tests/phase1_e2e_tests.rs | 10 +-
gateways/kafka/tests/produce_real_bridge_tests.rs | 182 +-
gateways/kafka/tests/sasl_tests.rs | 4 +
gateways/kafka/tests/tls_listener_tests.rs | 3 +
rfcs/README.md | 125 +-
scripts/bump-version.sh | 41 +-
scripts/ci/storage-compat.sh | 221 +-
scripts/prepare-release.sh | 1 +
scripts/run-bdd-tests.sh | 19 +-
scripts/run-examples-from-readme.sh | 27 +-
web/package-lock.json | 302 +-
web/package.json | 10 +-
1080 files changed, 175336 insertions(+), 30723 deletions(-)
create mode 100644 .github/actions/swift/post-merge/action.yml
copy .claude/skills/connector-review/agents/openai.yaml => .spi.yml (85%)
copy foreign/swift/Package.swift => Package.swift (79%)
create mode 100644 bdd/cpp/features/step_definitions/deferred_polling_steps.cpp
create mode 100644 bdd/go/tests/deferred_polling.go
create mode 100644
bdd/java/src/test/java/org/apache/iggy/bdd/DeferredPollingSteps.java
create mode 100644 bdd/php/tests/DeferredPollingFeatureTest.php
create mode 100644 bdd/python/tests/test_deferred_polling.py
copy bdd/rust/tests/{session_contract.rs => deferred_polling.rs} (84%)
create mode 100644 bdd/rust/tests/steps/deferred_polling.rs
create mode 100644 bdd/scenarios/deferred_polling.feature
copy {foreign => bdd}/swift/.swift-format (100%)
copy bdd/{go => swift}/Dockerfile (59%)
copy {foreign/swift => bdd/swift/tests}/Package.resolved (100%)
copy foreign/cpp/src/messages.rs => bdd/swift/tests/Package.swift (57%)
create mode 100644 bdd/swift/tests/Sources/iggy-bdd/DeferredPollingSteps.swift
create mode 100644 bdd/swift/tests/Sources/iggy-bdd/Gherkin.swift
create mode 100644 bdd/swift/tests/Sources/iggy-bdd/MessagingSteps.swift
create mode 100644 bdd/swift/tests/Sources/iggy-bdd/MetadataChangesSteps.swift
create mode 100644 bdd/swift/tests/Sources/iggy-bdd/ResourceOptionsSteps.swift
create mode 100644 bdd/swift/tests/Sources/iggy-bdd/Runner.swift
create mode 100644 bdd/swift/tests/Sources/iggy-bdd/main.swift
create mode 100644 core/binary_protocol/src/primitives/partition_status.rs
create mode 100644 core/binary_protocol/src/requests/messages/fetch_messages.rs
delete mode 100644
core/binary_protocol/src/requests/messages/wait_for_messages.rs
create mode 100644
core/binary_protocol/src/responses/messages/fetch_messages.rs
delete mode 100644
core/binary_protocol/src/responses/messages/wait_for_messages.rs
copy core/common/examples/{metadata_changes_fixtures.rs =>
deferred_polling_fixtures.rs} (96%)
create mode 100644 core/common/examples/deferred_polling_fixtures/schema.rs
create mode 100644 core/common/fixtures/deferred_polling.json
create mode 100644 core/common/src/types/message/commit_outcome.rs
create mode 100644 core/common/src/types/message/fetched_section.rs
create mode 100644 core/common/src/types/message/poll_options.rs
create mode 100644 core/common/tests/deferred_polling_fixtures.rs
create mode 100644 core/configs/src/server_config/external_auth.rs
create mode 100644 core/connectors/runtime/src/exactly_once.rs
create mode 100644 core/connectors/runtime/src/plugin_instance.rs
create mode 100644 core/connectors/sdk/tests/plugin_logging.rs
create mode 100644 core/consensus/src/replica_set.rs
create mode 100644 core/consensus/src/replication.rs
create mode 100644 core/integration/src/harness/ext_auth_server.rs
create mode 100644 core/integration/tests/cluster/idempotent_producer.rs
create mode 100644 core/integration/tests/cluster/replication_factor.rs
copy core/integration/tests/connectors/runtime/{http_state.toml =>
http_state_exactly_once.toml} (93%)
copy core/integration/tests/connectors/runtime/{http_state_config =>
http_state_exactly_once_config}/random_source.toml (80%)
create mode 100644 core/integration/tests/sdk/decode_diagnostics.rs
create mode 100644 core/integration/tests/server/external_auth.rs
create mode 100644 core/metadata/src/stm/partition_directory.rs
create mode 100644 core/partitions/src/producer_state.rs
create mode 100644 core/partitions/src/repair_memory.rs
delete mode 100644 core/sdk/src/clients/consumer/deferred.rs
create mode 100644 core/sdk/src/clients/consumer/tests.rs
create mode 100644 core/sdk/src/clients/consumer/tests/commits.rs
create mode 100644 core/sdk/src/clients/consumer/tests/polling.rs
create mode 100644 core/sdk/src/clients/producer_idempotence.rs
create mode 100644 core/sdk/src/clients/reader.rs
create mode 100644 core/sdk/src/clients/reader/cluster_tests.rs
create mode 100644 core/sdk/src/clients/reader/fixtures.rs
create mode 100644 core/sdk/src/clients/reader/membership.rs
create mode 100644 core/sdk/src/clients/reader/progress.rs
create mode 100644 core/sdk/src/clients/reader/worker.rs
create mode 100644 core/sdk/src/clients/reader_builder.rs
create mode 100644 core/sdk/src/session_owner/producer_ids.rs
create mode 100644 core/sdk/tests/send_future_depth.rs
create mode 100644 core/server/src/dispatch/fetch.rs
create mode 100644 core/server/src/external_auth.rs
create mode 100644 core/shard/src/served_reads.rs
create mode 100644 core/simulator/src/deferred_commit_tests.rs
create mode 100644 core/simulator/src/idempotent_producer_tests.rs
create mode 100644 core/simulator/src/readiness_mirror_tests.rs
create mode 100644 core/simulator/src/replication_flow_tests.rs
create mode 100644 examples/go/reader-consumer/main.go
create mode 100644
examples/java/src/main/java/org/apache/iggy/examples/reader/ReaderConsumer.java
create mode 100644 examples/swift/README.md
copy {foreign/swift => examples/swift/getting-started}/Package.resolved (100%)
copy core/sdk/src/http/path.rs => examples/swift/getting-started/Package.swift
(50%)
create mode 100644
examples/swift/getting-started/Sources/Common/ExampleOptions.swift
create mode 100644 examples/swift/getting-started/Sources/consumer/main.swift
create mode 100644 examples/swift/getting-started/Sources/producer/main.swift
create mode 100644 foreign/cpp/src/pending_poll.rs
create mode 100644 foreign/cpp/src/reader.cpp
create mode 100644 foreign/cpp/src/reader.rs
create mode 100644 foreign/cpp/tests/e2e/partition_reader.cpp
create mode 100644 foreign/cpp/tests/e2e/reader.cpp
create mode 100644 foreign/cpp/tests/fixtures/deferred_polling.json
create mode 100644 foreign/cpp/tests/unit/poll_options.cpp
create mode 100644
foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/DeferredPollingSteps.cs
create mode 100644
foreign/csharp/Iggy_SDK.Tests.Integration/DeferredPollTests.cs
delete mode 100644 foreign/csharp/Iggy_SDK/Consumers/AutoCommitMode.cs
delete mode 100644 foreign/csharp/Iggy_SDK/Consumers/IggyConsumer.Logging.cs
create mode 100644 foreign/csharp/Iggy_SDK/Consumers/PartitionReader.cs
create mode 100644 foreign/csharp/Iggy_SDK/Consumers/ReadException.cs
create mode 100644 foreign/csharp/Iggy_SDK/Consumers/ReaderBuilder.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/Checkpoint.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/CommitPolicy.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/DeferredPollOptions.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/FetchedMessages.cs
create mode 100644 foreign/csharp/Iggy_SDK/Contracts/PollOptions.cs
copy foreign/csharp/Iggy_SDK/Exceptions/{TopicNotFoundException.cs =>
VsrFetchProgressUncertainException.cs} (52%)
copy foreign/csharp/Iggy_SDK/Exceptions/{TopicNotFoundException.cs =>
VsrPartitionLaneBlockedException.cs} (51%)
create mode 100644 foreign/csharp/Iggy_SDK/Vsr/CommitOutcome.cs
create mode 100644
foreign/csharp/Iggy_SDK/Vsr/IConsumerGroupAssignmentProvider.cs
copy foreign/csharp/Iggy_SDK/Vsr/{Command.cs => IPartitionFetchClient.cs} (52%)
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ClientTests/HttpCommittingPollTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ClientTests/HttpDeferredPollTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ClientTests/HttpPartitionPollTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/ConsumerOnReaderTests.cs
delete mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/ConsumerSessionGenerationTests.cs
delete mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/NoAssignedPartitionBackoffTests.cs
delete mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/OffsetContinuationTests.cs
delete mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/PartitionIncarnationTests.Disposal.cs
delete mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/PartitionIncarnationTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/PartitionReaderTests.cs
delete mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/PollFailureTests.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/ConsumerTests/ReaderCluster.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/RentedBatchTests.cs
delete mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/RentedConsumerTests.cs
delete mode 100644
foreign/csharp/Iggy_SDK_Tests/ConsumerTests/RentedTypedConsumerTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ContractsTests/DeferredPollContractsTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ContractsTests/DeferredPollingFixtureTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ContractsTests/FetchMessagesContractsTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ContractsTests/OffsetContractsTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/ContractsTests/PollOptionsTests.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/Fixtures/deferred_polling.json
create mode 100644
foreign/csharp/Iggy_SDK_Tests/VsrTests/DeferredPollingTests.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/VsrTests/FetchMessagesTests.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/VsrTests/PartitionPollTests.cs
create mode 100644
foreign/go/binary_serialization/deferred_polling_fixture_test.go
create mode 100644 foreign/go/client/reader/consumer.go
create mode 100644 foreign/go/client/reader/consumer_test.go
create mode 100644 foreign/go/client/reader/reader.go
create mode 100644 foreign/go/client/reader/reader_test.go
create mode 100644 foreign/go/client/tcp/deferred_polling_fixture_test.go
create mode 100644 foreign/go/client/tcp/tcp_deferred.go
create mode 100644 foreign/go/client/tcp/tcp_deferred_test.go
create mode 100644 foreign/go/contracts/checkpoint.go
create mode 100644 foreign/go/contracts/deferred_polling.go
create mode 100644 foreign/go/contracts/deferred_polling_test.go
create mode 100644 foreign/go/contracts/poll_options.go
create mode 100644 foreign/go/contracts/poll_options_test.go
create mode 100644 foreign/go/contracts/testdata/deferred_polling.json
create mode 100644 foreign/go/internal/command/deferred_polling_fixture_test.go
create mode 100644 foreign/go/internal/vsr/deferred_polling_fixture_test.go
create mode 100644 foreign/go/tests/e2e_deferred_test.go
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/reader/IggyConsumer.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/reader/PartitionReader.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/reader/PartitionReaderBuilder.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/reader/ReadException.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/reader/ReaderTransport.java
copy
foreign/java/{bench/src/main/java/org/apache/iggy/bench/models/common/generator/DataBatch.java
=>
java-sdk/src/main/java/org/apache/iggy/client/async/reader/ReceivedMessage.java}
(62%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/CommittingRead.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/EventLoopShutdown.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/FetchMessages.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/TcpReaderTransport.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/blocking/reader/PartitionReader.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/message/AutoCommit.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/message/Checkpoint.java
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/message/{PartitioningKind.java
=> CommitAfter.java} (62%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/message/CommitErrorScope.java
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/message/{HeaderKind.java =>
CommitEvery.java} (50%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/message/CommitPolicy.java
copy
foreign/java/java-sdk/src/main/java/org/apache/iggy/message/{SendConfirmation.java
=> DecodeFailure.java} (59%)
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/message/FetchedMessages.java
create mode 100644
foreign/java/java-sdk/src/main/java/org/apache/iggy/message/PollOptions.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/AsyncPartitionReaderTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/reader/FakeTransport.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/reader/IggyConsumerTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/reader/PartitionReaderTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/reader/PartitionReaderTestAccess.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientFetchMessagesTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientReaderTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/DeferredPollingFixtureTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/EventLoopShutdownTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/FetchMessagesTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/reader/PartitionReaderTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/MessagesTcpClientFetchTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/message/PollOptionsTest.java
create mode 100644
foreign/java/java-sdk/src/test/resources/deferred_polling.json
create mode 100644 foreign/node/src/bdd/deferred-polling.ts
copy foreign/node/src/client/{client.utils.test.ts =>
client.public-api.test.ts} (56%)
create mode 100644 foreign/node/src/e2e/tcp.decode-skip.e2e.ts
create mode 100644 foreign/node/src/e2e/tcp.deferred-poll.e2e.ts
create mode 100644 foreign/node/src/stream/iggy-consumer.ts
create mode 100644 foreign/node/src/stream/partition-reader.test.ts
create mode 100644 foreign/node/src/stream/partition-reader.ts
create mode 100644 foreign/node/src/wire/fixtures/deferred_polling.json
create mode 100644 foreign/node/src/wire/message/checkpoint.ts
copy foreign/node/src/wire/{token/delete-token.command.test.ts =>
message/commit-outcome.test.ts} (50%)
create mode 100644 foreign/node/src/wire/message/commit-outcome.ts
create mode 100644 foreign/node/src/wire/message/deferred-poll.utils.ts
create mode 100644 foreign/node/src/wire/message/fetch-messages.command.test.ts
create mode 100644 foreign/node/src/wire/message/fetch-messages.command.ts
create mode 100644 foreign/node/src/wire/message/poll-options.test.ts
create mode 100644 foreign/node/src/wire/message/poll-options.ts
create mode 100644 foreign/node/src/wire/offset/position.command.ts
create mode 100644 foreign/php/src/pending_poll.rs
create mode 100644 foreign/php/src/poll_options.rs
create mode 100644 foreign/php/src/reader.rs
create mode 100644 foreign/php/tests/fixtures/deferred_polling.json
create mode 100644 foreign/python/src/event_loop.rs
create mode 100644 foreign/python/src/poll_options.rs
create mode 100644 foreign/python/src/reader.rs
create mode 100644 foreign/python/tests/fixtures/deferred_polling.json
create mode 100644 foreign/python/tests/test_partition_reader.py
create mode 100644 foreign/swift/Examples/Reader/main.swift
copy foreign/{csharp => swift}/LICENSE (100%)
copy NOTICE => foreign/swift/NOTICE (100%)
create mode 100644 foreign/swift/Sources/Iggy/Client/ConnectionString.swift
create mode 100644 foreign/swift/Sources/Iggy/Consumer/PartitionReader.swift
create mode 100644 foreign/swift/Sources/Iggy/Models/PollOptions.swift
create mode 100644 foreign/swift/Tests/IggyE2ETests/DeferredPollE2ETests.swift
create mode 100644 foreign/swift/Tests/IggyE2ETests/ReaderE2ETests.swift
create mode 100644 foreign/swift/Tests/IggyTests/ConnectionStringTests.swift
create mode 100644
foreign/swift/Tests/IggyTests/DeferredPollingVectorTests.swift
create mode 100644 foreign/swift/Tests/IggyTests/DeferredRequestTests.swift
create mode 100644 foreign/swift/Tests/IggyTests/Fixtures/deferred_polling.json
create mode 100644 gateways/kafka/src/bridge/iggy_bridge/change_log.rs
create mode 100644 gateways/kafka/src/bridge/iggy_bridge/coordinator_log.rs
create mode 100644 gateways/kafka/src/bridge/iggy_bridge/producer_ids.rs
create mode 100644 gateways/kafka/src/coordinator/mod.rs
create mode 100644 gateways/kafka/src/coordinator/partition.rs
create mode 100644 gateways/kafka/src/coordinator/record.rs
create mode 100644 gateways/kafka/src/coordinator/replay.rs
create mode 100644 gateways/kafka/tests/cluster_failover_tests.rs
create mode 100644 gateways/kafka/tests/common/deployment.rs
create mode 100644 gateways/kafka/tests/common/docker_clients.rs
create mode 100644 gateways/kafka/tests/common/gateways.rs
create mode 100644 gateways/kafka/tests/common/poll_relay.rs
create mode 100644 gateways/kafka/tests/coordinator_cluster_tests.rs
create mode 100644 gateways/kafka/tests/coordinator_real_bridge_tests.rs
create mode 100644 gateways/kafka/tests/metadata_changes_real_bridge_tests.rs