langfuse / langfuse/langfuse-java

Break api into 2 parts

Open
#31 11 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.