This post is a discussion with a colleague who reached out to me requesting for advice on whether to rebuild their successful e-commerce platform whose usage has grown exponentially over the last 18 months.

Advice on Platform Rebuild

Laravel is not Enterprise Ready

My first piece was 90% of platform rebuilds and re-architectures fail, especially since there are always unseen constraints in the new tooling that slows down the process. My approach is always to advice to squeeze as much as you can from your existing framework, language and platform before starting to look elsewhere

While this post is Laravel - specific, the ideas are applicable to any framework, programming language or even mix of technologies

As a Laravel developer who is passionate about architecture and solving scaling challenges, this is a series of questions to drive decision making

  1. Are you on the latest PHP 8.1 and Laravel 9?
  2. Is your database and application well tuned? Indexes, reducing the size of requests and number of queries

  3. Are you using the framework tools like queues to offload processing into asynchronous operations via queues
  4. Increasing your database resources - bigger server, tuning the MySQL
  5. Concurrency using Laravel Vapor and Octane?
  6. Are you profiling your application with tools like Blackfire or Sentry to find performance deadlocks?
  7. Have you refactored and cleaned up your data model to match the current reality?
  8. Is your architecture the simplest that it can be - https://future.a16z.com/software-development-building-for-99-developers/ as your organization may not need the complexity of a Fortune 500 or FAANG
  9. There are hidden gems which can also be leveraged to improve your architecture & unearth performance issues

When all else fails and a platform rebuild is necessary the Strangler Fig Pattern is a great way forward - replace different parts of the application as needed replacing them with newer architectural pieces referred Legacy Application Strangulation : Case Studies (https://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/)and Strangler Fig Application (https://martinfowler.com/bliki/StranglerFigApplication.html)

What are you thoughts and suggestions? What has worked for you and what pit falls did you find? Any additional advice?