In this talk we are going to explore some patterns of evolution of legacy systems towards microservices, and how this transition can be oriented towards event-oriented architectures. We would like to talk about the trade-off between having a centralized database versus multiple microservices with their own database. In this scenario, how can we guarantee transaction consistency and when to use choreography versus orchestration. In addition, we are going to bring practical examples of when to use synchronous or asynchronous communication and when it makes sense to use something like Service Mesh or Event Sourcing.