Rewrite decisions get made about code, and almost every rewrite fails on state.
The five questions worth answering before you touch anything have nothing to do with frameworks.
One: can you run the old and new system side by side on the same data? If the answer is no, you are not rewriting. You are cutting over blind on a date someone picked in a planning meeting.
Two: who owns writes during the transition? Dual-write sounds like a detail until two services both believe they own a balance or an order state. That is where silent divergence starts, and your test suite will not see it.
Three: what is the comparison oracle? On a Python 2 to 3 migration the interesting breakage is not import errors (those surface immediately). It is encoding and numeric behaviour quietly producing different values on the same input. You need a way to replay real traffic through both paths and diff the outputs, otherwise you ship the difference to users and hear about it from them.
Four: which parts are load-bearing for money or compliance? In payments and KYC work, the pieces holding attribution, ledger entries, and verification records are the ones you migrate last, with the most evidence, and not in the same change as a refactor. Everything else can move cheaply.
Five: what do you stop doing while the rewrite is live? A rewrite is two systems in production. Feature work does not pause on its own, and if nobody decides, the team pays the cost twice: once in the old code, once in the new.
My take: the architecture choice is usually the least risky part. The risk sits in the migration path and in write ownership, plus whether you can prove the old and new systems agree on real data. Monolith to services is mostly an exercise in carving ownership of state without losing a transaction.
If the answers are missing, the honest move is strangling the system incrementally (route a slice, verify it, keep the old path warm) rather than a parallel build with a flag day at the end.
I wrote more about how I approach inherited systems here: https://polycratia.com/c/50d88765
For anyone who has done this, you already know which of the five bit you hardest, whether that was the migration, the write ownership, or the feature work that never actually paused.