Hi folks,

Now that the v1 scheduler HTTP API (beta) is on the verge of being
released, I wanted to open up the discussion about client libraries for the
API. Mainly around support and home for the libs.

One idea is that, going forward, the only supported client library would be
C++ library which will live in the mesos repo. All other client libraries
(java, python, go etc) will not be officially supported but linked to from
our webpage/docs.

Pros:
--> The PMC/committers won't have the burden to maintain client libraries
in languages we don't have expertise in.
--> Gives more control (reviews, releases) and attribution (could live in
the author's org's or personal repo) to 3rd party client library authors

Cons:
--> Might be a step backward because we would be officially dropping
support for Java and Python. This is probably a good thing?
--> No quality control of the libraries by the PMC. Need co-ordination with
library authors to incorporate API changes. Could lead to bad user
experience.

I've taken a quick look at what other major projects do and it looks like
most of them officially support a few api libs and then link to 3rdparty
libs.

Docker
<https://docs.docker.com/reference/api/remote_api_client_libraries/#docker-remote-api-client-libraries>:
No official library? Links to 3rd party libs.

GitHub <https://developer.github.com/libraries/>: Official support for
Ruby, .Net, Obj-C. Links to 3rd party libs.

Google <https://developers.google.com/discovery/libraries?hl=en>: All
official libraries? No links to 3rd party libs?

K8S <http://kubernetes.io/v1.0/docs/devel/client-libraries.html>: Official
support for Go. Links to 3rd party libs.

Twitter <https://dev.twitter.com/overview/api/twitter-libraries>: Official
support for Java. Links to 3rd party libs.


Is this the way we want to go? This does mean we won't need a mesos/commons
repo because the project would be not be officially supporting 3rd party
libs. The supported C++ libs will live in the mesos repo.

Thoughts?

Reply via email to