Microservices with Clojure
上QQ阅读APP看书,第一时间看更新

Microservices Architecture

"Gather together the things that change for the same reasons. Separate those things that change for different reasons."

- Robert Martin, Single Responsibility Principle

Software architecture plays a key role in identifying the behavior of the system before it is built. A well-designed software architecture leads to flexible, reusable, and scalable components that can be easily extended, verified, and maintained over time. Such architectures evolve over time and help pave the way for the adoption of next-generation architectures. For example, a well-designed monolithic application that is built on the principles of Separation of Concern (SoC) is easier to migrate to microservices than an application that does not have well-defined components. In this chapter, you will:

  • Learn a systematic approach to designing microservices using the bounded context
  • Learn how to set up contracts between microservices and isolate failures
  • Learn how to manage data flows and transactions among microservices
  • Learn about service discovery and the importance of automated deployment