While rewrite, you already have list of all useful and useless features so you can design it correctly

Yes, that's a valid strategy and I think it relates to @phlashgbg 's comment about Carmack's quote.

Only one thing to keep in mind:

After product has become mature, it needs rewrite because you have time and money to rewrite. Also you don't need to rewrite everything !! You can substitute every services with newly designed micro services.

There are perfectly valid reasons for splitting a monolith into a microservices but it's not a given, in the sense that 20 microservices handled by 1 person are an anti-pattern.

The rewrite can be a modular monolith, a hybrid of a monolith with some serverless functions or a 100% microservice architecture, a totally serverless app or anything in between. It always depends on context and constraints.

code of conduct - report abuse