Files
ruoyi-vue-pro/docs/education/migration/issues/EDU-015-operational-independence.md

1.9 KiB

EDU-015 — Operational independence and legacy exit

  • Status: blocked
  • Type: integration and deployment program
  • Phase: 6
  • Blockers: EDU-011, EDU-013, EDU-014 child decisions, all temporary-adapter owners and exit plans

Outcome

The target backend runs its selected education capabilities without depending on the old NestJS API, worker, Supabase auth/storage, or asset-scanner deployment, except for explicitly time-bounded adapters with owners and exit dates.

Scope

  • Replace selected Worker jobs with Infra Job/MQ and owning-domain handlers.
  • Complete retries, dead letters, audit, notifications, and observability.
  • Complete file/scanner deployment or approved alternative.
  • Remove or disable temporary Scalar/legacy adapters according to provider strategy.
  • Reconcile migrated data and operational runbooks.
  • Prove deployment, startup, Flyway, and core user flows.

Acceptance criteria

  • Every temporary legacy dependency has an owner, telemetry, failure policy, and exit date.
  • At-least-once consumers are duplicate-safe.
  • Job retries/dead letters and scanner health are observable.
  • PostgreSQL migrations are actually executed and validated in an authorized environment.
  • Student and selected admin E2E flows pass against the target only.
  • Runbooks contain no active MySQL/manual-SQL or obsolete NestJS startup requirement.
  • Rollback and incident procedures are documented.

Verification

  • Application startup and health.
  • Flyway history and migration execution.
  • Worker/job deployment smoke tests.
  • Playwright student harness and selected admin flows.
  • Logs, metrics, traces, retry/dead-letter, and scanner health checks.

Risk and rollback

  • Risk: High deployment and production reliability risk.
  • Rollback: Per capability using application/configuration rollback while preserving forward database history.