langfuse / langfuse/langfuse-java
Break api into 2 parts
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 73
- Forks
- 14
- Avg merge
- 13h 54m
- Merged PRs (30d)
- 3
Description
Is there a way to break this into 2 parts - the pure api and the implementation?
Downstream frameworks (like Spring & Quarkus) may want to use their own Jackson versions & their own http implementations. Using the client as-is does not allow for this customization.
I maintain the Docling Java client and we have successfully done that - separated into 2 artifacts, the api & the client. Downstream frameworks like Spring & Quarkus only depend on the API and provide their own implementations of it. See https://github.com/docling-project/docling-java/tree/main/docling-serve
The Docling api also supports both Jackson 2 & 3 simultaneously.
We use a ServiceLoader abstraction, so you never actually have to use the implementation imports directly. Everything is driven through the API.
Apps that use Jackson 3 are unable to use this api at all.
I'm happy to help contribute if there is interest.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the current client artifact and its Jackson and HTTP implementation dependencies, then compare the referenced Docling structure at docling-java/docling-serve. Evaluate a ServiceLoader-based separation into API and implementation artifacts, including simultaneous Jackson 2 and 3 support; done means downstream frameworks can provide their own versions and HTTP implementations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100