Skip to content

[Bridge] Delivered progress to NexusHandler callbacks as OnProgress tasks. - #62

Draft
moetemp wants to merge 6 commits into
moe/bridge/v2/u5d-progress-operationfrom
moe/bridge/v2/u5e-handler-progress
Draft

moetemp wants to merge 6 commits into
moe/bridge/v2/u5d-progress-operationfrom
moe/bridge/v2/u5e-handler-progress

Conversation

@moetemp

@moetemp moetemp commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

What changed?

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

  • variantProgressDelivery returns deliverNexusHandlerProgress when progress_operation is set. The fold and backoff are the shared machine's.
  • A sync OnProgressResponse gives the new receiver state. A refusal turns progress off, and retryable errors retry. No result counts against the circuit breaker.
  • With behind set, the same progress goes again after callback.nexusHandler.progressBehindInterval (1 s), unless newer progress replaced it.
  • callback.nexusHandler.receiverStateMaxSize caps the state at 8 KiB.

It replaces moetemp/temporal#44, ported onto Jetty's delivery seam.

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

TestNexusHandlerProgressDelivery in progress_nexus_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).
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