Skip to content

[client] Allow bootstrap endpoint with unknown server type#622

Open
fxbing wants to merge 2 commits into
apache:mainfrom
fxbing:feature/20260615-unknown-bootstrap-server-type
Open

[client] Allow bootstrap endpoint with unknown server type#622
fxbing wants to merge 2 commits into
apache:mainfrom
fxbing:feature/20260615-unknown-bootstrap-server-type

Conversation

@fxbing

@fxbing fxbing commented Jun 15, 2026

Copy link
Copy Markdown

Purpose

Linked issue: close #621

Allow the Rust client to bootstrap from either coordinator or tablet server endpoints after server type validation is enabled.

Brief change log

  • Add ServerType::Unknown for bootstrap seed nodes.
  • Use ServerType::Unknown when creating the initial bootstrap ServerNode.
  • Skip server type validation only when the expected type is Unknown.
  • Add unit coverage for unknown expected server type.
  • Update Elixir binding server type mapping for the new variant.

Tests

  • cargo fmt --all -- --check
  • PROTOC=/opt/homebrew/bin/protoc cargo test -p fluss-rs --lib server_type_validation
  • PROTOC=/opt/homebrew/bin/protoc cargo test -p fluss-rs --lib
  • PROTOC=/opt/homebrew/bin/protoc cargo clippy --all-targets --workspace -- -D warnings

API and Format

This adds a public ServerType::Unknown enum variant. It does not change the wire protocol or storage format.

Documentation

No user-facing documentation change.

@leekeiabstraction leekeiabstraction left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your first contribution and improving the client! Left a question.

)
.is_ok()
);
assert!(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should a simple integration test case be made in existing IT testing with unknown type/bootstrapping against tablet server?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added an integration test covering bootstrapping from a tablet server endpoint. The test uses the shared cluster's tablet plaintext listener as bootstrap_servers, creates a FlussConnection, and verifies server node discovery returns both coordinator and tablet nodes.

@fxbing fxbing requested a review from leekeiabstraction June 16, 2026 11:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[client] Bootstrap should not require a coordinator server endpoint

2 participants