chore: bootstrap rust backend workspace and migration master plan
This commit is contained in:
commit
20684655d7
3 changed files with 91 additions and 0 deletions
36
Cargo.toml
Normal file
36
Cargo.toml
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
[workspace]
|
||||
resolver = "2"
|
||||
members = [
|
||||
"apps/gateway",
|
||||
"apps/users",
|
||||
"apps/companies",
|
||||
"apps/customers",
|
||||
"apps/professionals",
|
||||
"apps/jobseekers",
|
||||
"crates/contracts",
|
||||
"crates/config",
|
||||
"crates/errors",
|
||||
"crates/db",
|
||||
"crates/observability",
|
||||
"crates/auth",
|
||||
]
|
||||
|
||||
[workspace.package]
|
||||
edition = "2021"
|
||||
license = "Proprietary"
|
||||
authors = ["NXTGAUGE Team"]
|
||||
|
||||
[workspace.dependencies]
|
||||
anyhow = "1"
|
||||
axum = "0.8"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
thiserror = "2"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
|
||||
tonic = "0.12"
|
||||
prost = "0.13"
|
||||
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "uuid", "chrono", "json"] }
|
||||
uuid = { version = "1", features = ["serde", "v4"] }
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
18
README.md
Normal file
18
README.md
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# NXTGAUGE Backend Rust
|
||||
|
||||
Rust migration target for `nxtgauge-nov-2025-backend`, preserving the same microservices and request flow.
|
||||
|
||||
## Target Service Topology
|
||||
- `gateway` (HTTP API)
|
||||
- `users` (identity, runtime roles, onboarding, approvals)
|
||||
- `companies`
|
||||
- `customers`
|
||||
- `professionals`
|
||||
- `jobseekers`
|
||||
|
||||
## Migration Policy
|
||||
- Keep contracts stable (REST + proto semantics).
|
||||
- Keep runtime-config and onboarding schema behavior unchanged during parity phases.
|
||||
- Replace service implementations one by one.
|
||||
|
||||
See `docs/MIGRATION_MASTER_PLAN.md` for full staged plan.
|
||||
37
docs/MIGRATION_MASTER_PLAN.md
Normal file
37
docs/MIGRATION_MASTER_PLAN.md
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# 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.
|
||||
Loading…
Add table
Reference in a new issue