The Case Studies page (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/dev-nexus/llms.txt
Use this file to discover all available pages before exploring further.
/case-studies) reframes engineering post-mortems as “rituals” — ceremonial write-ups of complex technical conjurations. The page currently features a single deep-dive case study covering a legacy monolith migration to microservices. The content is structured into five labeled sections mirroring a ritual procedure: intent, materials, method, outcome, and lessons learned. The tone is analytical but maintains the site’s arcane framing throughout.
Route & Navigation
| Property | Value |
|---|---|
| Route | /case-studies |
| Nav Label | RITUALS |
| Page Heading | RITUALS PERFORMED |
| Subheading | // DETAILED POST-MORTEMS OF COMPLEX CONJURATIONS |
Current Case Study
MIGRATION OF THE LEGACY MONOLITH
I. INTENT
Decouple a monolithic application into three independent microservices:- Auth Service — handles authentication and session management
- Billing Service — isolates payment processing logic
- Inventory Service — manages product and stock data
II. MATERIALS
The migration used the following stack:| Material | Role |
|---|---|
| Node.js / Express | Service runtime and HTTP layer |
| Docker & Kubernetes | Containerization and orchestration |
| PostgreSQL | Per-service relational data stores |
| Redis (Pub/Sub) | Asynchronous inter-service messaging |
| GraphQL Federation | Unified API layer across services |
III. METHOD
The Strangler Fig pattern was chosen to allow incremental extraction without a risky big-bang cutover. An API gateway was introduced in front of the monolith, routing new traffic to extracted services while legacy routes continued hitting the monolith:IV. OUTCOME
The migration produced measurable improvements across all tracked metrics:| Metric | Before | After |
|---|---|---|
| Build time | 45 minutes | 3 minutes |
| Uptime | 99.1% | 99.99% |
| Developer sanity | Depleted | Restored |
V. LESSONS
Two hard-won lessons emerged from the migration:- Use CDC tools for data synchronization. Debezium (Change Data Capture) proved essential for keeping data consistent across services during the transition period, capturing database-level change events rather than relying on application-layer sync logic.
- Dual-write race conditions are treacherous. During the period when both the monolith and a new service were writing to overlapping data, race conditions introduced subtle inconsistencies. A strict write-ownership model (one service owns each entity) should be enforced before, not after, cutting over traffic.
Visual Structure
Each of the five sections is rendered as a distinct panel with a Roman-numeral section label. TheRITUAL_ID identifier is displayed in a monospace badge at the top of the case study. The gateway code block uses standard syntax highlighting with the site’s dark color scheme applied.
Animations
The five sections entrance-animate sequentially usingwhileInView, so each section fades in as the user scrolls past it — reinforcing the sense of a ritual being revealed step by step.
Customization
Adding a new case study: The page currently renders a single case study. To add more, create a case studies data array and map over it. Each case study should follow the five-section structure (intent, materials, method, outcome, lessons) for consistency.
<pre> or code block element in the Method section of the component.
Updating outcome metrics:
The before/after metrics table is hardcoded. Extract these into a metrics array on the case study data object to make them easier to update without touching JSX.
The Debezium link in the Lessons section is the only external hyperlink on this page. Ensure it points to the correct URL if the content is updated. All other links on this page are internal.