Chapter 7. Designing Applications with Cassandra
In the previous chapters you learned how Cassandra represents data, how to create Cassandra data models, and how Cassandra’s architecture works to distribute data across a cluster so that you can access it quickly and reliably. Now it’s time to take this knowledge and start to apply it in the context of real-world application design.
Hotel Application Design
Let’s return to the hotel domain you began working with in Chapter 5. Imagine that you’ve been asked to develop an application that leverages the Cassandra data models you created to represent hotels, their room availability, and reservations.
How will you get from a data model to the application? After all, data models don’t exist in a vacuum. There must be software applications responsible for writing and reading data from the tables that you design. While you could take many architectural approaches to developing such an application, we’ll focus in this chapter on the microservice architectural style.
Cassandra and Microservice Architecture
Over the past several years, the microservice architectural style has been foundational to the discipline of cloud-native applications. As a database designed for the cloud from the ground up, Cassandra is a natural fit for cloud-native applications.
We don’t intend to provide a full discussion of the benefits of a microservice architecture here, but will reference a subset of the principles introduced in Sam Newman’s book Building Microservices ...