bazelbuild / bazelbuild/remote-apis
V3: Clarify relationship between APIs and Endpoints
- Dominant language
- Go
- Stars
- 445
- Forks
- 141
- PR merge metrics
- No merged PRs in 30d
Description
_As discussed in https://github.com/bazelbuild/remote-apis/pull/116 , and previous places._
The REAPI currently does not specify what APIs and resources must be accessible from the same endpoint (domain), and what are able to be independently varied. For example, hosting the Execution API on a different endpoint from the CAS. A few clients currently support varying the endpoints along specific bounds, but not all consistently with each other, and no client allows _full_ flexibility in how APIs/resources and endpoints can be paired. This ambiguity routinely comes up and causes problems for implementers.
There are two directions I see that we could go as a community. One is to say that clients should expect all APIs available at a single endpoint, period. The other is to define a clear set of different 'virtual' endpoints (Service APIs, perhaps scoped to a particular set of resources, e.g. like the Execution service, plus 'CAS blob bytestreams', 'streamed bytestreams', etc), specify how they're bucketed in terms of which are allowed to vary independently and which should be co-hosted, and recommend a consistent way to configure clients and/or let them discover it.
The Capabilities API will also need to be revised in light of whatever is decided here.
cc @edbaunton @sstriker
Contributor guide
Research direction
Start by reading the discussion in this issue and the referenced pull request #116 to understand the unresolved API and endpoint relationship. Trace how the proposed decision would affect the Capabilities API; done means the community has selected and documented a clear endpoint model and revised the affected specification.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100