• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

decentraland / deployments-to-sqs / 31953723569
90%
main: 91%

Build:
Build:
LAST BUILD BRANCH: 1.2.0
DEFAULT BRANCH: main
Ran 16 Aug 2026 02:47PM UTC
Jobs 1
Files 18
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Aug 2026 02:46PM UTC coverage: 90.268% (-0.8%) from 91.105%
31953723569

Pull #538

github

LautaroPetaccio
feat: record processed deployments in postgres

Replaces "an object exists in the bucket" as the record of what has been
processed, which conflated "downloaded" with "published" and silently
dropped entities.

If an SNS publish failed, markAsDeployed was correctly skipped so the entity
would retry — but the download had already written the object, so on retry
exist() said "already stored" and the entity was marked deployed without
ever being published. Reproduced against a real catalyst with a dummy SNS
ARN: 1,648 entities stored, 0 published, and on restart 1,657 skipped as
already-stored. An SNS outage did not delay deployments, it lost them.

A row is now claimed before the download and stamped with published_at only
after both publishes succeed. Dedup reads:

  row present  -> processed only if published_at is set
  no row       -> fall back to storage.exist()

The fallback is a migration step. Every entity processed since 2022 exists
only as an S3 object, and a table-only check would treat the whole bucket as
unprocessed and replay years of deployments at the converter. Claiming
BEFORE the download is what makes "no row" mean "predates the table" rather
than "publish failed" — without it the fallback would reintroduce the bug.

filterProcessedSnapshotsFrom now resolves a batch in one query instead of up
to 1000 sequential S3 HEADs, falling back to storage only for hashes the
table does not know.

published_at IS NULL now identifies stranded entities; the count is logged
at startup. Note it only covers entities seen since this ships — ones
stranded historically have an object and no row, and are indistinguishable
from never-seen ones.

Postgres runs on the shared supra cluster already used by 34 services. The
database and user still need provisioning, and
PG_COMPONENT_PSQL_CONNECTION_STRING must be set in definitions, before this
is deployed.
Pull Request #538: feat: record processed deployments in postgres

64 of 79 branches covered (81.01%)

Branch coverage included in aggregate %.

33 of 51 new or added lines in 5 files covered. (64.71%)

307 of 332 relevant lines covered (92.47%)

8.41 hits per line

Uncovered Changes

Lines Coverage ∆ File
9
0.0
src/migrations/1755300000000_processed-deployments.ts
6
75.68
src/adapters/processed-registry/index.ts
3
91.11
18.89% src/components.ts
Jobs
ID Job ID Ran Files Coverage
1 31953723569.1 16 Aug 2026 02:47PM UTC 18
90.27
GitHub Action Run
Source Files on build 31953723569
  • Tree
  • List 18
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #31953723569
  • Pull Request #538
  • PR Base - main (#31913478124)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc