Skip to content

feat(indexer): generalized event indexer, historical backfill, lag alerting - #585

Merged
Akatenvictor merged 1 commit into
AudioBitsStellar:mainfrom
jajafwangshak86-ops:feat/indexer-worker-backfill-alerts-233-234-235-240
Sep 1, 2026
Merged

feat(indexer): generalized event indexer, historical backfill, lag alerting#585
Akatenvictor merged 1 commit into
AudioBitsStellar:mainfrom
jajafwangshak86-ops:feat/indexer-worker-backfill-alerts-233-234-235-240

Conversation

@jajafwangshak86-ops

Copy link
Copy Markdown
Contributor

Closes #233, Closes #234, Closes #235, Closes #240

Summary

What changed

  • src/services/Soroban/SorobanEventReader.tsgetEvents wrapper (cursor + range modes), getLatestLedger, injected RPC server for testability
  • src/services/Soroban/eventDecoders.ts — per-contract decoders producing InsertIndexedEventDTO
  • src/services/Soroban/IndexerContractRegistry.ts — builds the 5 indexer contracts from config + decoders
  • src/workers/indexer/IndexerWorker.ts + index.ts — concurrent poller, npm run worker:indexer
  • src/services/Soroban/BackfillService.ts + src/scripts/backfill.ts — historical backfill
  • monitoring/prometheus-alerts.yml — lag alert rules (wired via rule_files)
  • New env vars + docs, IndexerService.getBackfillStatus()

Verification

  • 4 new test suites (22 tests) pass; existing suites unaffected
  • npm run lint and npm run format:check pass

…, lag alerting

- SorobanEventReader: getEvents poller (cursor + range modes) with injected server
- eventDecoders: per-contract decoders (nft, artist, catalog, royalty, marketplace)
- IndexerWorker: concurrently polls all 5 contracts, persists cursors, reorg guard (closes AudioBitsStellar#233, AudioBitsStellar#234)
- BackfillService + CLI: idempotent, resumable historical backfill (closes AudioBitsStellar#235)
- lag monitor loop + Prometheus HighIndexerLag/CriticalIndexerLag alerts w/ runbook (closes AudioBitsStellar#240)
- new npm scripts worker:indexer and cli; env vars + docs
@drips-wave

drips-wave Bot commented Aug 31, 2026

Copy link
Copy Markdown

@jajafwangshak86-ops Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Akatenvictor
Akatenvictor merged commit 41e9895 into AudioBitsStellar:main Sep 1, 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

2 participants