37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
# Backend Rust Migration Master Plan
|
|
|
|
## Goal
|
|
Re-implement backend services in Rust while preserving architecture, service boundaries, data flow, and runtime behavior.
|
|
|
|
## Current-to-Target Mapping
|
|
- NestJS gateway -> Rust gateway
|
|
- NestJS users -> Rust users
|
|
- NestJS companies -> Rust companies
|
|
- NestJS customers -> Rust customers
|
|
- NestJS professionals -> Rust professionals
|
|
- NestJS jobseekers -> Rust jobseekers
|
|
|
|
## Hard Constraints
|
|
1. Same microservice boundaries.
|
|
2. Same role/runtime-config flow.
|
|
3. Same onboarding state transitions and schema lookup behavior.
|
|
4. Same auth/session behavior at gateway boundary.
|
|
5. No contract-breaking change unless explicitly versioned.
|
|
|
|
## Stage Sequence
|
|
1. Freeze contracts and DB assumptions.
|
|
2. Implement Rust shared crates (`config`, `errors`, `db`, `auth`, `observability`, `contracts`).
|
|
3. Implement Rust gateway with parity adapters to existing services.
|
|
4. Migrate `users` service to Rust and switch gateway client to Rust users.
|
|
5. Migrate `companies` service to Rust.
|
|
6. Migrate `customers` service to Rust.
|
|
7. Migrate `professionals` service to Rust.
|
|
8. Migrate `jobseekers` service to Rust.
|
|
9. Remove legacy Nest services after full parity signoff.
|
|
|
|
## Phase Exit Checklist (Apply Every Stage)
|
|
- Build passes.
|
|
- Contract tests pass.
|
|
- Runtime-config and onboarding smoke tests pass.
|
|
- No P0/P1 behavior regressions.
|
|
- Rollback path validated.
|