Skip to content

generic channel support for FlightClient - #9933

Merged
alamb merged 3 commits into
apache:mainfrom
qube-rt:rumenov/generic_channel1
May 7, 2026
Merged

generic channel support for FlightClient#9933
alamb merged 3 commits into
apache:mainfrom
qube-rt:rumenov/generic_channel1

Conversation

@rumenov

@rumenov rumenov commented May 6, 2026

Copy link
Copy Markdown
Contributor

Allow FlightServiceClient to be parameterized over the underlying channel type, so
users can wrap a tonic channel with custom interceptors or services.

Motivation: Annotating outbound Flight requests with metadata (e.g. injecting
OpenTelemetry trace context into headers) currently requires forking or wrapping at
a higher level. Making the channel generic lets callers compose tower
layers/interceptors idiomatically and propagate distributed tracing context without
bespoke plumbing.

Rostislav Rumenov added 2 commits May 6, 2026 16:05
@github-actions github-actions Bot added arrow Changes to the arrow crate arrow-flight Changes to the arrow-flight crate labels May 6, 2026
@alamb alamb added the api-change Changes to the arrow API label May 7, 2026

@alamb alamb 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 @rumenov -- I think this is technically an API change (as now FlightClient is templated) but a good one.

I think we should move the test and ensure CI is passing, but then this looks good to me

We are preparing a new major release with API changes soon. see here for more details

Comment thread arrow-flight/tests/client_interceptor.rs Outdated
@alamb alamb added the next-major-release the PR has API changes and it waiting on the next major version label May 7, 2026
@rumenov

rumenov commented May 7, 2026

Copy link
Copy Markdown
Contributor Author

Thank you @rumenov -- I think this is technically an API change (as now FlightClient is templated) but a good one.

I think we should move the test and ensure CI is passing, but then this looks good to me

We are preparing a new major release with API changes soon. see here for more details

Thanks for the review!

It is an API change but it is not a breaking API change. Everything should keep working as before

@alamb

alamb commented May 7, 2026

Copy link
Copy Markdown
Contributor

The MSRV failure is unrelated to this PR. For more details:

@alamb

alamb commented May 7, 2026

Copy link
Copy Markdown
Contributor

The CI failure is not due to your changes (your changes just triggered the rebuild) so I'll just merge this PR in and we can sort out any additional failures as a follow on PR

@alamb
alamb merged commit c1507ad into apache:main May 7, 2026
11 of 12 checks passed
Rich-T-kid pushed a commit to Rich-T-kid/arrow-rs that referenced this pull request Jun 2, 2026
Allow FlightServiceClient to be parameterized over the underlying
channel type, so
  users can wrap a tonic channel with custom interceptors or services.
Motivation: Annotating outbound Flight requests with metadata (e.g.
injecting
OpenTelemetry trace context into headers) currently requires forking or
wrapping at
a higher level. Making the channel generic lets callers compose tower
layers/interceptors idiomatically and propagate distributed tracing
context without
  bespoke plumbing.

---------

Co-authored-by: Rostislav Rumenov <rostislav.rumenov@qube-rt.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api-change Changes to the arrow API arrow Changes to the arrow crate arrow-flight Changes to the arrow-flight crate next-major-release the PR has API changes and it waiting on the next major version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants