Repository navigation
fix: persist reorg-safe cursor in Stellar metrics indexer - #261
Open
Bethelamos wants to merge 1 commit into
Open
Bethelamos wants to merge 1 commit into
Bethelamos wants to merge 1 commit into
Conversation
truthixify
requested changes
Oct 23, 2026
truthixify
left a comment
Contributor
There was a problem hiding this comment.
Changes requested on exact head 909834b. The required Stellar suite is red because this patch removes the working indexer contract without replacing it: createRpcClient() no longer exposes getEvents/getLatestLedger, index.js still calls server.getEvents(), and processEvents(), healthSnapshot(), and start() are removed while the existing tests and runtime depend on them. The README also claims cursor-store.js and cursor-store.test.js exist, but neither file is in the PR, and it contains contributor-facing instructions about fixing syntax errors. Restore the existing RPC/poller/server behavior, add the actual cursor store and tests, and get the required suite green.
This branch has not been deployed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Overview
This PR makes the Stellar metrics indexer resume from a persisted, reorg-safe cursor instead of always fetching contract events from the default cursor. It adds cursor persistence across restarts, deduplication of replayed events, and a rewind policy for ledger reorganizations. The changes are limited to the metrics indexer scripts and its README.
Related Issue
Closes #[issue-number]
Changes
🔁 Cursor Persistence and Recovery
[MODIFY]
stellar/scripts/metrics-indexer/index.js[MODIFY]
stellar/scripts/metrics-indexer/runtime.js[MODIFY]
stellar/scripts/metrics-indexer/rpc-client.jsfetchContractEventsso the indexer can resume from persisted state.[MODIFY]
stellar/scripts/metrics-indexer/README.mdVerification Results
Restart, duplicate, and cursor-corruption tests were required by the issue, but no test files are among the changed paths in this PR, so no test results are claimed here.
index.jsandruntime.jsruntime.js, documented in READMECloses #235