This document provides an overview of Upwork's migration from a legacy PHP/Perl architecture to a new microservices-based architecture called Agora. It discusses the problems with the legacy stack and the goals of the new architecture. Specifically, it aimed to isolate risk, allow independent development teams, and enable advanced deployment techniques. It then describes how the presentation layer was refactored into a microservices-based framework called Agate using Symfony and Angular. Agate services communicate with Agora using Phystrix, an open source library based on Hystrix for circuit breaking and fallback handling. The document concludes with discussions around testing, visibility tools, and planned improvements.