You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
perf(catalog): back off persistently failing stitches - #36061
Persistently failing stitching requests currently retry at a fixed rate indefinitely. Add a failure counter and quadratic backoff on acquisition, capped at one hour before up to 10% positive jitter. Initial claims keep their configured lease, and longer configured leases remain the minimum.
Failed work remains recoverable. New requests reset the counter while preserving existing leases; failure updates are fenced by ticket and exact lease so stale attempts cannot affect successors. This is an independent resilience improvement.
Validation: PostgreSQL 16 and SQLite queue/publication/processing tests (139 passed), then 87 stitching tests including migration up/down and reset by entity ID. Root lint and yarn build:api-reports passed. MySQL execution is left to CI.
✔️ Checklist
A changeset describing the change and affected packages. (more info)
Added or updated documentation
Tests for new functionality and regression tests for bug fixes
Screenshots attached (for UI changes)
All your commits have a Signed-off-by line in the message. (more info)
backstage-goalieBot
added
size:medium
Medium-sized pull requests receive no change in priority for reviews.
waiting-for:review
The PR needs a review and will be visible in the review queue unless already assigned an owner.
labels
Oct 7, 2026
Errors from markDeferredStitchCompleted in finally bypass this failure-recording call. If completion repeatedly fails while the claimed queue row remains, DefaultStitcher reports failed attempts but failure_count stays unchanged, so these retries receive no additional backoff. Handle completion errors with the same fenced, best-effort failure recording and rethrow the original error. Add a regression test where completion rejects while the queue row remains.
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
Cross-database lease fencing warrants final human review, particularly with MySQL validation deferred to CI.
0 open findings
🧠 Review effort: Balanced
This branch has not been deployed
No deployments
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
area:catalogRelated to the Catalog Project Areaarea:documentationImprovements or additions to documentationsize:mediumMedium-sized pull requests receive no change in priority for reviews.waiting-for:reviewThe PR needs a review and will be visible in the review queue unless already assigned an owner.
2 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hey, I just made a Pull Request!
Persistently failing stitching requests currently retry at a fixed rate indefinitely. Add a failure counter and quadratic backoff on acquisition, capped at one hour before up to 10% positive jitter. Initial claims keep their configured lease, and longer configured leases remain the minimum.
Failed work remains recoverable. New requests reset the counter while preserving existing leases; failure updates are fenced by ticket and exact lease so stale attempts cannot affect successors. This is an independent resilience improvement.
Validation: PostgreSQL 16 and SQLite queue/publication/processing tests (139 passed), then 87 stitching tests including migration up/down and reset by entity ID. Root lint and
yarn build:api-reportspassed. MySQL execution is left to CI.✔️ Checklist
Signed-off-byline in the message. (more info)