Skip to content

Remove MongoDB room/result persistence and temporary dual writes #205

Description

@coder13

Part of #199.

Goal

Complete the PostgreSQL migration after the authoritative cutover has remained healthy for the agreed rollback window.

Scope

  • Remove MongoDB reads and writes for rooms, race sessions, attempts, solves/results, and their participant state.
  • Remove embedded attempt/result data and room racing fields from the Mongoose model.
  • Remove the PostgreSQL dual-write implementation and flags that only supported MongoDB authority.
  • Remove shadow-read comparison code and migration-only metrics after preserving any generally useful health metrics.
  • Retain historical migration and reconciliation tooling only when it remains useful and safe.
  • Update backup, restore, development, deployment, and architecture documentation.

Safety requirements

  • Confirm no supported rollback image requires MongoDB room/result data.
  • Advance any rollback floor before destructive cleanup.
  • Capture and verify a final pre-cleanup backup.
  • Make destructive MongoDB cleanup a separate, explicit, idempotent operation.
  • Do not delete historical PostgreSQL attempts or solves.
  • Verify production no longer queries the removed collections or fields before cleanup.

Acceptance criteria

  • Application code contains no MongoDB room/session/attempt/solve reads or writes.
  • PostgreSQL failures correctly fail affected durable operations rather than silently falling back.
  • Migration-only dual-write and shadow-read flags are removed.
  • Cleanup can dry-run, apply, verify, and rerun idempotently.
  • A repository search and runtime instrumentation find no removed-path usage.
  • Backups and restore instructions treat PostgreSQL as authoritative for these domains.
  • Development and test environments no longer require MongoDB for room racing behavior.
  • Normal and competition room end-to-end tests pass after MongoDB room data is unavailable.

Dependencies

  • Successful PostgreSQL cutover and completion of its rollback observation window.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: dataMongoDB, PostgreSQL, migrations, backfills, and data integrityarea: platformBuild, CI, deployment, operations, and repository infrastructureenhancementNew feature or requestpriority: P1High-priority work for the next delivery cycle

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions