Repository navigation
Conversation
Client applications only need `Event`, the event builders and `RpcClient`, but had to depend on the SDK, which also carries the plugin API. Splitting them also removes a split package: `Event` moves to `org.apache.flume.event`, so the client artifact owns `org.apache.flume.api`, `org.apache.flume.event` and `org.apache.flume.util`. `RpcClient` now extends `Closeable` and reports failures with `IOException` and the new `RpcDeliveryException`, so the client no longer needs the plugin-side `EventDeliveryException` and `FlumeException`. The event readers move to `org.apache.flume.serialization` and `EventHelper` to `org.apache.flume.core`, so that `org.apache.flume.event` lives in one artifact. Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
`flume-auth` never used the SDK, so dropping that dependency lets a Thrift client depend on it without pulling in the plugin API. The Thrift client, source and sink move to role-first packages in the rpc repository. Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
The spooling directory constants and `PlatformDetect` move out of the SDK to the new `flume-spooldir-source` artifact, which is their only user; this also removes two packages split between the SDK and the core. The aliases and launchers point to the new Avro and spooling directory packages, which also fixes the `avro` deserializer and `avro_event` serializer aliases that referred to non-existent classes. Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
ppkarwasz
added this pull request to stack #512
October 5, 2026 19:57
This was referenced Oct 5, 2026
rgoers
approved these changes
Oct 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR splits classes used by the RPC client into its own
flume-clientartifact. This will allow Flume users (likelog4j-flume) to only depend onflume-client.At the same time this partially solves the split
org.apache.flumepackage problem and defines the roles of the various artifacts:flume-clientis a lightweight API to connect to Flume, which only needs a runtime (flume-avro-clientorflume-thrift-client) to work.flume-sdkwill be a required dependency for Flume plugin implementations (sources, sinks, channels).flume-core.