Feature #13493

Updated by Peter Amstutz about 2 years ago

First step in

https://dev.arvados.org/projects/arvados/wiki/Federation_implementation_roadmap

> When retrieving a workflow record for arvados-cwl-runner, API server notices workflow UUID is remote, and fetches it with salted token (instead of looking in local DB)

Notes here:

https://dev.arvados.org/projects/arvados/wiki/Routing_multi_cluster_requests

Design questions:

* Is this a feature added to the current Rails API server, as a proxy in front of the API server, or added to the SDK?
** Adding to the Rails API server seems complicated. Requests need to be routed before they hit regular handling. Requests to remote API servers tie up a request handler process.
** A separate request broker can act as a transparent proxy and route requests to the correct API server.
** Embedding in the SDK means no new infrastructure required, but is less transparent.

Proposed strategy:

* Implement request routing in the Go SDK
* Write an API broker in Go that uses the SDK.

# Client contacts the API broker with GET request
# API broker inspects uuid to determine where the request should be sent.
# Sends request and gets response
# Returns result or error

Back