Skip to content

Run the indexer as its own process and docker-compose service - #713

Merged
Akatenvictor merged 3 commits into
AudioBitsStellar:mainfrom
ANTIDOT20:feat/231-232-245-246-indexer-worker
Sep 29, 2026
Merged

Akatenvictor merged 3 commits into
AudioBitsStellar:mainfrom
ANTIDOT20:feat/231-232-245-246-indexer-worker

Conversation

@ANTIDOT20

@ANTIDOT20 ANTIDOT20 commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Closes #245
Closes #246
Closes #232

  • npm run indexer alias (same entrypoint as worker:indexer), matching the SongProcessorWorker's npm run worker naming
  • indexer docker-compose service reusing the app image, wired to the same Postgres/Redis, with its own healthcheck
  • README Scripts table entry
  • Design indexer checkpoint/cursor persistence #232: IndexerCursor already persisted lastProcessedLedger per contract+network, but the issue also asks for the last processed event ID so a restart resumes after the exact event rather than re-polling the whole ledger. Added lastProcessedEventId (nullable) to the entity + a migration, and threaded it through IndexerService.recordProgress/getStatus/getAllStatus.

#231 (indexer ADR) is also already done on main (docs/adrs/010-indexer-architecture.md) but isn't assigned yet, so it's left out of this PR.

- npm run indexer alias (same entrypoint as worker:indexer), so it
  matches the SongProcessorWorker's npm run worker pattern
- indexer docker-compose service reusing the app image, wired to
  the same Postgres/Redis, with its own healthcheck
- README Scripts table entry

AudioBitsStellar#231 (indexer ADR) and AudioBitsStellar#232 (cursor persistence) are already done on
main: docs/adrs/010-indexer-architecture.md covers all 5 contracts and
the polling/cursor design, and src/entities/IndexerCursor.ts +
migration already implement per-contract/per-network cursor
persistence. Left comments on those issues rather than duplicating.

Closes AudioBitsStellar#245
Closes AudioBitsStellar#246
@drips-wave

drips-wave Bot commented Sep 29, 2026

Copy link
Copy Markdown

@ANTIDOT20 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

@ANTIDOT20

Copy link
Copy Markdown
Contributor Author

Closing for now — issue assignment is still pending. Will re-open/re-raise once #245/#246 are assigned to me.

@ANTIDOT20 ANTIDOT20 closed this Sep 29, 2026
@ANTIDOT20 ANTIDOT20 reopened this Sep 29, 2026
ANTIDOT20 and others added 2 commits September 29, 2026 22:26
IndexerCursor already tracked lastProcessedLedger per contract+network,
but issue AudioBitsStellar#232 also asks for the last processed event ID so a restart
resumes after the exact event, not just re-polls the whole ledger it
was in. Adds lastProcessedEventId (nullable varchar) to the entity,
a migration, and threads it through IndexerService.recordProgress/
getStatus/getAllStatus.

Closes AudioBitsStellar#232
@Akatenvictor
Akatenvictor merged commit a44570e into AudioBitsStellar:main Sep 29, 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

Development

Successfully merging this pull request may close these issues.

Add a docker-compose service for the indexer worker Run the indexer as its own scalable worker process Design indexer checkpoint/cursor persistence

2 participants