Netsmart has worked with me since 2012, across two of my companies. That is the part I would point at first: this is not a project, it is a fourteen-year relationship, and the hard work only gets handed to people who have already earned it.
Most recently, leaving a private data center for AWS: roughly 1,800 tables and 8TB of data off Oracle and onto Aurora PostgreSQL, driven by Oracle licensing costs and the smallest downtime window we could manage. It became considerably broader than that in practice. The Java application had to be containerized onto ECS, Oracle-specific database logic had to be rewritten, reporting had to move off SQL Server onto Redshift, and networking and performance had to be reconsidered for a cloud environment entirely.
My focus early was finding the risk in the data layer and shaping a phased approach around it. Oracle-specific behavior sat deep inside stored procedures. Date and time handling had to be evaluated case by case, because no global rule existed. Primary keys that were perfectly fine in Oracle had to be rethought as BIGINT. Performance assumptions did not survive the move. None of that appears in an architecture diagram. It appears when you start moving things.
So we broke it into four phases to bound the risk: application to AWS on containers with Oracle still in place, Oracle to RDS to cut the data center dependency, Oracle to PostgreSQL, then reporting to Redshift.
The first full cutover did not go well. We had load tested and validated the key workflows, but real users surfaced performance problems tied to years of tuning and client-specific optimization that were never in our test scenarios. We rolled back — which was possible only because the phasing had been built to allow it. The whole thing was harder and more expensive than anyone planned for. The platform is now fully on AWS and PostgreSQL, positioned to actually use cloud-native architecture rather than reproduce what was there before.