From your description, the reason the existing application needs refactoring is that it was built based on the functional requirements while the load balancing and availability aspects were ignored. Since these were not taken into account in the initial application design, the application now needs to be redesigned. The various impacts of HA and load balancing on the application design did not become issues until the client started trying to implement them against an application not designed for them.
What you are proposing is to perform the new application redesign without taking into account the disaster recovery aspects. This is exactly the same mistake that was made during the first implementation, only this time the requirements being ignored are the DR aspects. What will you do when you get to the DR design and discover that your freshly refactored app has unforeseen functionality gaps and defects which conflict with the DR design?
Before touching any code on this assignment you will need to have a very good understanding of the client's recovery requirements and then design the application with these in mind. You should know the recovery time objective, the recovery point objective, how the application will reconcile its state with any upstream or downstream applications (and whether that is a manual or automated reconciliation), the licensing impact of a hot/warm/cold DR site, etc., etc. Otherwise you are introducing unwarranted risk and the possibility of significant rework later on.