Skip to content

[Bridge] Sent progress to NexusHandler callbacks as OnProgress tasks. - #44

Closed
moetemp wants to merge 1 commit into
moe/bridge/u5d-progress-operationfrom
moe/bridge/u5e-handler-progress
Closed

moetemp wants to merge 1 commit into
moe/bridge/u5d-progress-operationfrom
moe/bridge/u5e-handler-progress

Conversation

@moetemp

@moetemp moetemp commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

What changed?

This PR delivers a source operation's progress to a NexusHandler callback that names a progress operation, as a sync Nexus task on the Worker's task queue.

  • deliverNexusHandler dispatches progress_operation with an OnProgressRequest that carries the saved receiver state. Fold and backoff are the Nexus variant's code.
  • A sync OnProgressResponse gives the new state. A refusal turns progress off, and retryable errors retry.
  • No result counts against the circuit breaker, so a Worker that's down holds back no completion.
  • With behind set, the same progress goes again at once, unless newer progress replaced it.
  • callback.nexusHandler.receiverStateMaxSize caps the state at 8 KiB.

Why?

One progress path serves both callback variants, and a slow follower can't hold back completions (DD-110). behind lets a Worker read a long backlog in pages that fit the request timeout (DD-112).

How did you test it?

Link to a test plan if any -

  • Unit Tests
  • Staging
  • End to End Tests

TestProgressDeliveryNexusHandler in progress_test.go.

A Worker that names a progress operation gets the source's progress through matching, and keeps a cursor on the callback (DD-110, DD-112).
@moetemp

moetemp commented Oct 14, 2026

Copy link
Copy Markdown
Owner Author

Replaced by Bridge v2 #62. Bridge was re-cut onto Jetty (stream wake-ups in one namespace) with no Ford content. The same-namespace notifier parts moved to Jetty, and the Nexus parts are in Bridge v2.

@moetemp moetemp closed this Oct 14, 2026
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.

1 participant