Repository navigation
fix(cache): decouple publication scheduling from history delivery - #399
Conversation
|
Arkor — Preview deployments for arkorlab-upwind Use the checkbox below to choose whether this pull request gets preview deployments.
Checking this builds the latest commit and future pushes. Unchecking stops queued and future builds; a running build can finish and an existing preview stays available. |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 18 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
[Medium impact] The PR appears safe to merge; the latest changes preserve publication ordering and full-completion waits. SummarySeparates ordered cache publication from ordered history and retry work, so slow history does not block later publication.
Diagram%%{init: {'theme': 'neutral'}}%%
flowchart LR
P1[First projection] --> P2[Next projection]
P1 --> H1[First history and retries]
P2 --> H2[Next history and retries]
H1 --> H2
P2 --> A[Successful publication answer]
H2 --> D[Full completion]
Reviews (2) · Last reviewed commit: "refactor(cache): keep settle phases with..." · Reviewed by Greptile |
Cache projection for a new change currently waits for the previous run's history storage and delivery, even after that run has finished publishing its cache records. A slow history destination can therefore delay later publication and response completion.
Separate the ordered projection tail from the ordered history and retry tail. KV, tag, marker, and continuation work still complete before a successful publication acknowledgement. Maintenance, repair preparation, retention, erasure, and test drains continue to wait for full completion. Native cache scheduling remains serial.
The projection fence is independent of early acknowledgements, and queued history receives only small completion metadata rather than carried values or record buffers. This preserves publication visibility without adding calls or waits to the cache-hit request path. The existing response wait limit and local record-copy behavior are unchanged.
Validation
This removes history-related queue blocking; artifact upload and KV write latency remain unchanged.