Chapter 12. Cloud-native data: Breaking the data monolith

This chapter covers

  • Why every microservice needs a cache
  • Using events to populate local data stores/caches
  • Using messaging in event-driven systems
  • The difference between messaging and events
  • The event log and event sourcing

Remember how I defined cloud-native in chapter 1? There I did a lightweight analysis that took us from high-level requirements for modern software to a set of four characteristics: cloud-native software is redundant, adaptable, modular, and dynamically scalable (figure 12.1). And for the bulk of the book, you’ve studied these characteristics in the context of the services and interactions that make up our software. But recall that the third entity in the mental model that I also laid out in chapter 1 was data. The characteristics of cloud-native software apply just as much to the data layer.

Figure 12.1. User requirements for software drive our development toward cloud-native architectural and management tenets. For cloud-native data, we’ll turn our focus to modularity and the autonomy that comes from it.

12.1. Every microservice needs a cache

12.2. Moving from request/response to event driven

12.3. The event log

12.4. Event sourcing

12.5. We’re just scratching the surface