I led a 12-year-old PHP monolith migration to modular architecture. 18 months, 0 downtime.
Recipe
- Diagnose with Deptrac.
- Avoid 20-microservice big-bang. Find natural domain boundaries.
- Modularize in-place first.
- Strangler pattern on lower-risk domains.
- Outbox for cross-boundary communication.
- Extract progressively, keep low-risk pieces in the monolith.