This is an automated email from the ASF dual-hosted git repository.
numinnex pushed a change to branch java-leader-aware
in repository https://gitbox.apache.org/repos/asf/iggy.git
from da553e2cd feat(java): add cluster metadata and leader redirection to
TCP client
add d9635b6d7 feat(server-ng): forward follower HTTP requests to VSR
primary (#3744)
add c5fec1ff6 test(integration): spec clients-table durability across node
restart (#3736)
add 40d1e356e fix(server-ng): legacy-parity consumer group errors, roster
HTTP bind (#3754)
add ab944b558 chore(deps): Bump the csharp group with 8 updates (#3759)
add cfa104c37 feat(server-ng): add cluster.nodes.advertised_address for
clients (#3757)
add 89045771e feat(consensus): rework client table for session resume
across restarts (#3753)
add f88e8a862 feat(server-ng): harden configuration surface (#3756)
add b6a2f81c0 fix(sdk): forward unknown command codes instead of rejecting
them (#3766)
add ba541bb9c fix(server-ng): stop restart panic when WAL replay recovers
sessions (#3768)
add 91fcb9300 fix(ci): propagate failures in pre-commit hooks (#3743)
add 265bd265a chore(deps): Bump com.gradleup.shadow from 9.5.1 to 9.6.0 in
/foreign/java in the java group across 1 directory (#3771)
add 3153e456f chore(deps): Bump the github-actions group with 5 updates
(#3772)
add 3711d060d fix(ci): example-runner silently skips Python/Go examples
when exclude starts with a dash (#3770)
add f0eb0950d fix(server-ng): make partition reconvergence safe for
in-flight sends (#3761)
add f67f03873 fix(server-ng): fold io_uring remediation into
runtime-creation errors (#3775)
add 0fa657a94 fix(ci): stop trailing checks from skipping text files as
binary (#3778)
add 3b190c14e feat(js): add VSR framing to the Node SDK (#3763)
add 5ca0bbb40 chore(deps): Bump postcss from 8.5.16 to 8.5.23 in /web
(#3762)
add 74fb5e2a9 fix(server-ng): bind cluster TCP to [tcp].address, not the
roster ip (#3783)
add 131c51352 Merge branch 'master' into java-leader-aware
No new revisions were added by this update.
Summary of changes:
.github/actions/node-npm/pre-merge/action.yml | 76 +-
.github/actions/utils/server-start/action.yml | 15 +-
.github/config/components.yml | 2 +-
.github/workflows/_build_python_wheels.yml | 14 +-
.github/workflows/_build_rust_artifacts.yml | 6 +-
.github/workflows/_common.yml | 32 +-
.github/workflows/_detect.yml | 2 +-
.github/workflows/_publish_rust_crates.yml | 2 +-
.github/workflows/_test.yml | 17 +-
.github/workflows/_test_bdd.yml | 2 +-
.github/workflows/_test_examples.yml | 6 +-
.github/workflows/coverage-baseline.yml | 26 +-
.github/workflows/edge-release.yml | 2 +-
.github/workflows/post-merge.yml | 4 +-
.github/workflows/publish.yml | 16 +-
.pre-commit-config.yaml | 8 +-
Cargo.lock | 7 +-
Cargo.toml | 13 +-
bdd/docker-compose.vsr.yml | 7 +
codecov.yml | 6 +
core/binary_protocol/Cargo.toml | 2 +-
core/binary_protocol/src/consensus/header.rs | 55 +-
core/binary_protocol/src/consensus/operation.rs | 3 +-
core/common/Cargo.toml | 2 +-
core/common/src/error/iggy_error.rs | 4 +-
core/common/src/types/identifier/mod.rs | 16 +-
core/configs/src/lib.rs | 5 +-
core/configs/src/server_ng_config/cluster.rs | 987 +++++++++++++++-
core/configs/src/server_ng_config/defaults.rs | 63 +-
core/configs/src/server_ng_config/displays.rs | 12 +-
core/configs/src/server_ng_config/message_bus.rs | 137 +--
core/configs/src/server_ng_config/metadata.rs | 89 +-
core/configs/src/server_ng_config/mod.rs | 1 +
core/configs/src/server_ng_config/partition.rs | 212 ++++
core/configs/src/server_ng_config/server_ng.rs | 2 +
core/configs/src/server_ng_config/validators.rs | 407 +++++++
core/configs/src/server_ng_config/websocket.rs | 105 +-
core/consensus/src/client_table.rs | 1181 ++++++++++++--------
core/consensus/src/impls.rs | 163 ++-
core/consensus/src/lib.rs | 7 +-
core/consensus/src/metadata_helpers.rs | 492 ++++----
core/consensus/src/plane_helpers.rs | 116 +-
core/consensus/src/vsr_timeout.rs | 83 +-
.../tests/cluster/client_table_restart.rs | 608 ++++++++++
core/integration/tests/cluster/mod.rs | 22 +-
.../integration/tests/connectors/http/http_sink.rs | 72 +-
core/integration/tests/mod.rs | 5 +-
.../tests/sdk/consumer_group_membership.rs | 102 ++
core/integration/tests/sdk/raw.rs | 13 +-
core/integration/tests/server/http_vsr.rs | 15 +-
core/integration/tests/server/message_retrieval.rs | 51 +-
.../server/scenarios/message_cleanup_scenario.rs | 8 +-
.../server/scenarios/purge_delete_scenario.rs | 78 +-
.../scenarios/reconnect_after_restart_scenario.rs | 9 +
core/message_bus/src/cache/connection.rs | 2 -
core/message_bus/src/client_listener/mod.rs | 2 +-
core/message_bus/src/config.rs | 56 +-
core/metadata/src/impls/metadata.rs | 795 ++++++++++---
core/metadata/src/impls/recovery.rs | 287 ++++-
core/metadata/src/lib.rs | 2 +-
core/metadata/src/stm/consumer_group.rs | 281 ++++-
core/metadata/src/stm/result.rs | 71 +-
core/metadata/src/stm/snapshot.rs | 8 +-
core/metadata/src/stm/stream.rs | 247 +++-
core/metadata/src/stm/user.rs | 2 +-
core/partitions/src/journal.rs | 25 +-
core/partitions/src/lib.rs | 1 +
core/sdk/Cargo.toml | 2 +-
core/sdk/src/clients/client.rs | 5 +-
core/sdk/src/clients/consumer.rs | 7 +-
core/sdk/src/vsr.rs | 88 +-
core/server-ng/Cargo.toml | 6 +-
core/server-ng/config.toml | 217 +++-
core/server-ng/src/auth.rs | 5 +-
core/server-ng/src/bootstrap.rs | 808 ++++++++++++-
core/server-ng/src/cluster_meta.rs | 81 +-
core/server-ng/src/dispatch.rs | 432 ++++++-
core/server-ng/src/dispatch/authz.rs | 10 +-
core/server-ng/src/http.rs | 144 ++-
core/server-ng/src/http/error.rs | 269 ++++-
core/server-ng/src/http/extractor.rs | 20 +-
core/server-ng/src/http/forward.rs | 632 +++++++++++
core/server-ng/src/http/handlers.rs | 25 +-
core/server-ng/src/http/jwt.rs | 47 +-
core/server-ng/src/http/reads.rs | 114 +-
core/server-ng/src/http/reply.rs | 51 +-
core/server-ng/src/http/session.rs | 73 +-
core/server-ng/src/http/state.rs | 143 ++-
core/server-ng/src/http/submit.rs | 133 ++-
core/server-ng/src/http/tls.rs | 29 +-
core/server-ng/src/login_register.rs | 9 +-
core/server-ng/src/main.rs | 13 +-
core/server-ng/src/partition_helpers.rs | 20 +-
core/server-ng/src/partition_reconciler.rs | 216 +++-
core/server-ng/src/server_error.rs | 18 +-
core/server-ng/src/session_manager.rs | 26 +
core/server-ng/src/users.rs | 10 +-
core/server/src/main.rs | 40 +-
core/server_common/src/consensus_message.rs | 68 ++
core/server_common/src/diagnostics.rs | 108 +-
core/shard/src/coordinator.rs | 232 +++-
core/shard/src/lib.rs | 301 ++++-
core/shard/src/router.rs | 5 +
core/simulator/src/lib.rs | 38 +-
core/simulator/src/workload/mod.rs | 4 +-
.../src/workload/ops/delete_consumer_group.rs | 34 +-
.../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.Producer.csproj | 10 +-
.../Iggy_SDK.Examples.TcpTls.Consumer.csproj | 4 +-
.../Iggy_SDK.Examples.TcpTls.Producer.csproj | 4 +-
foreign/csharp/Directory.Packages.props | 6 +-
.../data-population-explanation.md | 3 +-
foreign/java/gradle/libs.versions.toml | 2 +-
foreign/node/README.md | 63 +-
foreign/node/package-lock.json | 4 +-
foreign/node/package.json | 8 +-
foreign/node/scripts/check-vsr-protocol.mjs | 340 ++++++
foreign/node/src/bdd/raw.ts | 5 +-
foreign/node/src/client/client.config.test.ts | 95 ++
foreign/node/src/client/client.config.ts | 56 +
foreign/node/src/client/client.connection.test.ts | 455 ++++++++
foreign/node/src/client/client.connection.ts | 362 ++++--
foreign/node/src/client/client.frame.test.ts | 160 +++
foreign/node/src/client/client.frame.ts | 227 ++++
foreign/node/src/client/client.socket.test.ts | 677 +++++++++++
foreign/node/src/client/client.socket.ts | 410 ++++++-
foreign/node/src/client/client.ts | 73 +-
foreign/node/src/client/client.type.ts | 24 +-
foreign/node/src/client/index.ts | 1 +
foreign/node/src/e2e/tcp.consumer-group.e2e.ts | 8 +-
foreign/node/src/e2e/tcp.consumer-stream.e2e.ts | 8 +-
foreign/node/src/e2e/tcp.raw.e2e.ts | 38 +-
foreign/node/src/e2e/test-client.utils.ts | 2 +
foreign/node/src/index.ts | 6 +
foreign/node/src/stream/consumer-stream.ts | 9 +-
.../wire/cluster/get-cluster-metadata.command.ts | 2 +-
foreign/node/src/wire/command-set.test.ts | 10 +-
foreign/node/src/wire/command-set.ts | 10 +-
foreign/node/src/wire/command.code.ts | 5 +-
.../src/wire/command.utils.test.ts} | 39 +-
foreign/node/src/wire/command.utils.ts | 8 +-
.../wire/consumer-group/delete-group.command.ts | 19 +-
.../src/wire/consumer-group/get-group.command.ts | 16 +-
.../node/src/wire/consumer-group/group.utils.ts | 7 +
foreign/node/src/wire/consumer-group/index.ts | 1 +
.../src/wire/consumer-group/join-group.command.ts | 19 +-
.../src/wire/consumer-group/leave-group.command.ts | 19 +-
.../wire/consumer-group/sync-group.command.test.ts | 99 ++
.../src/wire/consumer-group/sync-group.command.ts | 67 ++
foreign/node/src/wire/error.code.test.ts | 40 +
foreign/node/src/wire/error.code.ts | 32 +-
foreign/node/src/wire/error.utils.ts | 22 +-
.../src/wire/message/poll-messages.command.test.ts | 423 +++++++
.../node/src/wire/message/poll-messages.command.ts | 211 +++-
foreign/node/src/wire/offset/get-offset.command.ts | 2 +-
foreign/node/src/wire/offset/offset.utils.ts | 4 +-
.../node/src/wire/offset/store-offset.command.ts | 2 +-
.../topic.utils.test.ts} | 60 +-
foreign/node/src/wire/topic/topic.utils.ts | 4 +-
foreign/node/src/wire/vsr/header.test.ts | 99 ++
foreign/node/src/wire/vsr/header.ts | 165 +++
foreign/node/src/wire/vsr/index.ts | 157 +++
foreign/node/src/wire/vsr/namespace.test.ts | 342 ++++++
foreign/node/src/wire/vsr/namespace.ts | 216 ++++
foreign/node/src/wire/vsr/operation.test.ts | 107 ++
foreign/node/src/wire/vsr/operation.ts | 158 +++
foreign/node/src/wire/vsr/register.test.ts | 93 ++
foreign/node/src/wire/vsr/register.ts | 116 ++
foreign/node/src/wire/vsr/reply.test.ts | 196 ++++
foreign/node/src/wire/vsr/reply.ts | 172 +++
foreign/node/src/wire/vsr/session.test.ts | 73 ++
foreign/node/src/wire/vsr/session.ts | 117 ++
foreign/node/src/wire/vsr/vsr.test.ts | 131 +++
foreign/node/tsconfig.json | 2 +-
foreign/python/Cargo.toml | 2 +-
justfile | 4 +-
scripts/ci/trailing-newline.sh | 2 +-
scripts/ci/trailing-whitespace.sh | 2 +-
scripts/utils.sh | 2 +-
web/package-lock.json | 16 +-
web/package.json | 2 +-
190 files changed, 15736 insertions(+), 2337 deletions(-)
create mode 100644 core/configs/src/server_ng_config/partition.rs
create mode 100644 core/integration/tests/cluster/client_table_restart.rs
create mode 100644 core/server-ng/src/http/forward.rs
create mode 100644 foreign/node/scripts/check-vsr-protocol.mjs
create mode 100644 foreign/node/src/client/client.config.test.ts
create mode 100644 foreign/node/src/client/client.config.ts
create mode 100644 foreign/node/src/client/client.connection.test.ts
create mode 100644 foreign/node/src/client/client.frame.test.ts
create mode 100644 foreign/node/src/client/client.frame.ts
create mode 100644 foreign/node/src/client/client.socket.test.ts
copy foreign/{go/contracts/duration.go => node/src/wire/command.utils.test.ts}
(60%)
create mode 100644
foreign/node/src/wire/consumer-group/sync-group.command.test.ts
create mode 100644 foreign/node/src/wire/consumer-group/sync-group.command.ts
create mode 100644 foreign/node/src/wire/error.code.test.ts
create mode 100644 foreign/node/src/wire/message/poll-messages.command.test.ts
copy foreign/node/src/wire/{token/delete-token.command.test.ts =>
topic/topic.utils.test.ts} (51%)
create mode 100644 foreign/node/src/wire/vsr/header.test.ts
create mode 100644 foreign/node/src/wire/vsr/header.ts
create mode 100644 foreign/node/src/wire/vsr/index.ts
create mode 100644 foreign/node/src/wire/vsr/namespace.test.ts
create mode 100644 foreign/node/src/wire/vsr/namespace.ts
create mode 100644 foreign/node/src/wire/vsr/operation.test.ts
create mode 100644 foreign/node/src/wire/vsr/operation.ts
create mode 100644 foreign/node/src/wire/vsr/register.test.ts
create mode 100644 foreign/node/src/wire/vsr/register.ts
create mode 100644 foreign/node/src/wire/vsr/reply.test.ts
create mode 100644 foreign/node/src/wire/vsr/reply.ts
create mode 100644 foreign/node/src/wire/vsr/session.test.ts
create mode 100644 foreign/node/src/wire/vsr/session.ts
create mode 100644 foreign/node/src/wire/vsr/vsr.test.ts