1.5 KiB
1.5 KiB
Hearthmod Modernization Notes
This workspace contains the Hearthmod stack (game server, lobby server, web UI, and supporting components). The current goal is to stabilize the development environment and improve maintainability without changing client protocol compatibility.
Component-by-Component Replacement Plan
Replacing services incrementally is the safest path. It preserves existing behavior while enabling modernization behind compatibility boundaries.
- Baseline and observability: document startup order, ports, and data flows; add basic health checks and structured logs.
- Gateway layer: introduce a thin gateway that speaks the legacy protocol and routes to existing lobby/game services.
- Lobby replacement: implement lobby endpoints behind the gateway, canary traffic to validate parity.
- Game server replacement: implement the game loop and compare deterministic state snapshots with the legacy server before shifting traffic.
- Data layer swap: add a DAL in new services, mirror writes to a new store, then flip reads after validation.
- Decommission legacy: remove unused services and dependencies once traffic is fully migrated.
Maintainability Priorities
- Keep configuration centralized (env or config files).
- Prefer a single entrypoint script or container orchestration for local dev.
- Add small smoke tests to validate service health and database connectivity.
Protocol Notes
See PROTOCOL-NOTES.md for the current opcode decoder map and client-derived
learnings used for compatibility work.