Skip to content

DESIGN: Streaming Sync#3733

Draft
vrajashkr wants to merge 1 commit intoproject-zot:mainfrom
vrajashkr:design/image-stream
Draft

DESIGN: Streaming Sync#3733
vrajashkr wants to merge 1 commit intoproject-zot:mainfrom
vrajashkr:design/image-stream

Conversation

@vrajashkr
Copy link
Contributor

What type of PR is this?
feature design

Which issue does this PR fix:
N/A - only a design

What does this PR do / Why do we need it:
Design for streaming sync

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@vrajashkr
Copy link
Contributor Author

I've disabled a bunch of workflows for this PR since it is intended to be a design discussion PR :)
Saves on extra CI runs :)

@rchincha
Copy link
Contributor

  1. Check if the image/blob already exists?
  • 1.1 If yes, then just serve it
  • 1.2 If no, then send the request to a BlobStreamer
  1. BlobStreamer is a writer to a temp location and many readers (clients) - pay attention to range requests
  • 2.1 - clients can disconnect
  • 2.2 - upstream may timeout
  1. Once the blob is fully downloaded and verified, then copy it to the actual repo

Copilot AI added a commit that referenced this pull request Jan 26, 2026
Co-authored-by: rchincha <45800463+rchincha@users.noreply.github.com>
Copilot AI added a commit that referenced this pull request Jan 26, 2026
- Add SyncBlob method to sync service and on-demand interface
- Integrate blob sync into GetBlob API handler
- Use regclient to fetch blobs from upstream
- Automatically trigger sync when blob not found locally
- Handle sync errors gracefully with retry to local storage

This implements the core requirement from PR #3733 discussion:
check if blob exists, if not, sync from upstream on-demand.

Co-authored-by: rchincha <45800463+rchincha@users.noreply.github.com>
@vrajashkr
Copy link
Contributor Author

regclient feature request - regclient/regclient#1044

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants