Building a microservices based architecture from an existing monolithic application is a non-trivial task with a lot of challenges. You will likely end up in with a completely different system in terms of architecture, components and more importantly the API surface you’re exposing; and that means breaking changes for your clients. Is there a better way? We will deconstruct a monolithic application and refactor it into two microservices using a naive approach, taming all the problems that will rise, and discover how RESTful architecture combined with an API Gateway are the way to go. Then we’ll fully make the switch from a monolithic application to microservices based version (and viceversa) without breaking the clients at all.