Step 05 of 9 2-3 weeks· advanced
Step 5: Build the Coexistence Layer
Stand up the routing, auth, and observability infrastructure that lets old and new run side-by-side. Every later slice depends on this.
Recommended prompts
Use one of these to do the work in your IDE
Open the template to read it in full. Click Copy prompt to grab it (with your stack values pre-filled where they apply) — then paste into Claude Code, Cursor, or wherever you build.
Recommended skills
Drop these into Claude Code for this phase
Skills auto-trigger on the right kind of request. Install once; they apply to every prompt that fits.
Recommended MCP configs
Wire these tools into Claude Code first
MCP servers give Claude Code direct access to external systems (Jira, browsers, databases). Configure once.
When you're done
Verify these in your own work before moving on
This is a checklist for you to mentally tick off in your repo and IDE — the site doesn't track it, you do.
- Routing layer deployed (Azure App Gateway / Front Door / NGINX / etc.)
- Feature flag system in place (routes can flip at runtime)
- Auth shim works: a user signed into legacy can call new APIs
- Session continuity works: bouncing between old and new doesn't drop session
- Centralized observability: logs / traces / metrics from both systems land in one place
- "Hello world" slice deployed through the new system to prove the pipes work
Common pitfalls
What goes wrong at this step
- Skipping the hello-world slice — proves the infrastructure works before you bet a real feature on it
- Auth shim too simple — must handle session refresh, MFA, logout across both systems
- No observability — debugging coexistence issues without distributed tracing is painful
- Routing layer at the wrong level — DNS-based routing seems simple but breaks session affinity