Summary

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. This chapter revealed the available options for the next-gen language-level reactive database APIs, namely ADBA and R2DBC. We have explored the pitfalls and benefits of both approaches to this and investigated how Spring Data may support reactive repositories for relational databases with the new Spring Data JDBC module.

We have also covered the current options for integrating blocking drivers or repositories into a reactive application—we have learned a lot! However, we have only scratched the surface of data persistence as this is a vast topic that cannot possibly be covered within one chapter.

At the beginning of this chapter, we mentioned the dual nature of databases—static data storage and streams of messages with data updates. The next chapter explores reactive systems and reactive programming in the context of messaging systems such as Kafka and RabbitMQ.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.135.206.254