apache / apache/bookkeeper

Support for non-Java clients

Open
#2,167 5 comments 0 reactions 0 assignees View on GitHub
area/client triage/week-4 type/feature
Dominant language
Java
Stars
2k
Forks
976
Avg merge
6d 15h
Merged PRs (30d)
7

Description

**FEATURE REQUEST**

Any multi-language support on the horizon? I see some smatterings of Python code, but it doesn't appear to be a full-featured client.

I have been researching BookKeeper as a potential solution for a system written in Go. However, the current API appears to be Java-only, even though the Bookie protocol (which is apparently undocumented?) is Protobuf.

I was puzzled by the fact that there is no documented wire protocol for the main server, and indeed, looking at the Java client, it looks like it is in fact a "fat" client that talks directly to both ZooKeeper and the Bookie backends.

So it appears that in order to access BookKeeper from a non-JVM language, you have to port the entire fat client.

A lot of projects in the Hadoop/Java world — Flink, Flume and Accumulo come to mind — take this Java-centric approach rather than an API-first approach. This was also also the situation Kafka was in when it launched, though the situation is much better these days. For someone outside Java land, it's a little disappointing to see relatively new projects do exactly the same thing all over again.

Are there plans to extricate all of this tightly coupled logic into a server that can offer a language-agnostic API using gRPC/Protobuf or similar?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.