forked from wangziqi/ruoyi-vue-pro
1.9 KiB
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.