Dynamic

Rewrite vs Strangler Pattern

Developers should consider a rewrite when an existing codebase has accumulated significant technical debt, uses outdated technologies that hinder productivity, or has architectural flaws that prevent necessary feature additions meets developers should use the strangler pattern when dealing with monolithic legacy systems that are difficult to maintain or scale, but where a complete rewrite is too risky or disruptive. Here's our take.

🧊Nice Pick

Rewrite

Developers should consider a rewrite when an existing codebase has accumulated significant technical debt, uses outdated technologies that hinder productivity, or has architectural flaws that prevent necessary feature additions

Rewrite

Nice Pick

Developers should consider a rewrite when an existing codebase has accumulated significant technical debt, uses outdated technologies that hinder productivity, or has architectural flaws that prevent necessary feature additions

Pros

  • +Common use cases include migrating from monolithic to microservices architectures, replacing legacy systems with modern frameworks, or when maintenance costs exceed the benefits of incremental improvements
  • +Related to: refactoring, technical-debt

Cons

  • -Specific tradeoffs depend on your use case

Strangler Pattern

Developers should use the Strangler Pattern when dealing with monolithic legacy systems that are difficult to maintain or scale, but where a complete rewrite is too risky or disruptive

Pros

  • +It is particularly useful in scenarios requiring modernization of enterprise applications, such as migrating from on-premises to cloud-based architectures or updating outdated technology stacks, as it allows for incremental changes without downtime
  • +Related to: microservices, legacy-system-migration

Cons

  • -Specific tradeoffs depend on your use case

The Verdict

Use Rewrite if: You want common use cases include migrating from monolithic to microservices architectures, replacing legacy systems with modern frameworks, or when maintenance costs exceed the benefits of incremental improvements and can live with specific tradeoffs depend on your use case.

Use Strangler Pattern if: You prioritize it is particularly useful in scenarios requiring modernization of enterprise applications, such as migrating from on-premises to cloud-based architectures or updating outdated technology stacks, as it allows for incremental changes without downtime over what Rewrite offers.

🧊
The Bottom Line
Rewrite wins

Developers should consider a rewrite when an existing codebase has accumulated significant technical debt, uses outdated technologies that hinder productivity, or has architectural flaws that prevent necessary feature additions

Disagree with our pick? nice@nicepick.dev