Software Migration Patterns
1. Strangler Fig Pattern Named after the Strangler Fig tree that slowly grows around and replaces a host tree. Idea Gradually replace parts of a legacy application with new services, piece by piece, while the old system continues running. Instead of rewriting everything at once: New functionality → built as new services Existing modules → slowly migrated Traffic → incrementally routed to new components Eventually the legacy system “dies naturally.” Architecture Flow Client | API Gateway / Proxy | ------------------------- | | Legacy Monolith New Microservices The gateway decides: which requests go to old system which go to new services Example Suppose Oracle CPQ had: pricing approvals catalog reporting You might: Keep monolith running Extract Reporting Service first Route reporting APIs to new service Later extract Pricing Continue until monolith disappears Advantages Lower risk Incremental...