Because microservices consist of a distributed system with multiple moving parts, a single component's downtime can affect the entire system. Managing stateless code is easy, but factoring in persistent state makes things much harder. Thus, zero-downtime migrations are paramount to guarantee integrity and consistency. A "one database per microservice" characteristic creates perplexity. In legacy systems, the traditional model adopts transactions, strong consistency, and create, read, update, delete (CRUD). We must reassess some of these concepts to guarantee integrity and consistency with zero downtime. In this session, we’ll discuss strong and eventual consistency, CRUD, and command and query responsibility segregation (CQRS), event sourcing, and how these techniques relate to each other in different integration and evolution strategies for relational databases. We’ll explore views, materialized views, mirror tables, event sourcing/streaming, data virtualization, change data capture, and how these strategies enable you to build up a microservices architecture from a legacy monolithic relational database.