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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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