In this chapter, we have learned a lot about data persistence in modern applications. We have described the challenges of data access within with microservice architecture and how polyglot persistence helps to build services with the desired characteristics. We have also had an overview of the available options for implementing distributed transactions. This chapter covered the pros and cons of blocking and reactive approaches for data persistence, as well as missing reactive alternatives for each of the modern blocking data access levels.
In this chapter, we described how the Spring Data project gracefully brings reactive data access into modern Spring applications. We have investigated the features and implementation details of the reactive MongoDB connector and the Cassandra connector. We have also covered the support for multi-document transactions with MongoDB 4...