Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ksqldb-api-client pulls in too many unnecessary dependencies #10624

Open
credmond opened this issue Jan 1, 2025 · 0 comments
Open

ksqldb-api-client pulls in too many unnecessary dependencies #10624

credmond opened this issue Jan 1, 2025 · 0 comments

Comments

@credmond
Copy link

credmond commented Jan 1, 2025

Describe the bug
ksqldb-api-client pulls in too many dependencies, despite this comment in the POM:

A note on dependencies.
The Java client module has a different approach to dependencies than server modules.
The client is embedded in a user's application so it's really important that:
* It's small. We don't want to drag in a load of dependencies and make our user's apps big and
bloated. Also, the user's app might be a lightweight microservice running on a cloud or similar
where binary size can really matter.
* We minimise the probability of version conflicts. The more libraries that we depend on the
greater the risk of a version conflict with a different version of the same library already
used in the user's app. Version conflicts are a real pain for user's to resolve. It gets worse
if we're pulling in commonly used libraries such as Apache commons, Guava, Google stuff, etc.
as the probability of a conflict gets even higher. These ones in particular should really be avoided.

The POM still defaults to including io.confluent.broker-plugins (via its parent POM), which pulls in many, many unnecessary libraries. Not to mention, some of these libraries break JPMS rules by multiple JARs exporting the same packages, therefore being impossible to use in a modular Java project.

Expected behavior
Properly configured POM that does not pull in many unnecessary libraries.

Actual behaviour
Improperly configured POM that pulls in many unnecessary libraries.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant