Hi everyone,
Now that we're starting to look at remote execution more, it's been
noticeable that when doing remote builds, uploading and downloading
sources can take a significant portion of time. Ideally we want to be
able to have a remote service that can fetch these for us and ensure
they are in remote caches, bypassing the need to download a source and
then upload it to the remote server.
I think this is drawing the wrong conclusion. We don't need a remote service. The situation you describe needs a BuildStream instance to fill the SourceCache and it requires the lifetime of objects in the SourceCache to be long enough so that you don't need to go back to the origin.
What to track when is highly specific to the project. I can imagine leveraging the source control system hooks to trigger targetted tracking and fetching. I don't see us requiring infrastructure for this in BuildStream core.