7 The Microservice architecture: enabling fast sustainable flow
- Why the microservice architecture enables fast flow development at scale
- The drawbacks of the microservice architecture
- An overview of the microservice architecture pattern language
In the previous chapter, I described how the monolithic architecture is often a good choice. But sometimes - especially when the business-critical application becomes successful - an application and its development organization can outgrow its monolithic architecture. As a result, it becomes impossible to satisfy the five software quality attributes required for fast flow: maintainability, testability, deployability, observability, and evolvability. In such a scenario, it makes sense to migrate to a microservice architecture.
7.1 What is the microservice architecture exactly?
7.1.1 My definition of the microservice architecture
7.1.2 Some other popular definitions
7.1.3 Comparing two definitions of the microservice architecture
7.2 There’s more to the microservice architecture than just services
7.2.1 Services in a microservice architecture
7.2.2 The structure of a service
7.2.3 Operations in a microservice architecture
7.2.4 Build architecture dimension
7.2.5 Services <⇒ teams
7.3 Essential characteristics of the microservice architecture
7.3.1 Essential characteristic #1: Services are independently deployable
7.3.2 Essential characteristic #2: Services are loosely coupled
7.4 Benefits of the microservice architecture
7.4.1 Enables fast, sustainable flow
7.4.2 Supports multiple technology stacks
7.4.3 Enables an organization to scale
7.4.4 Improves the developer experience
7.4.5 Enables segregation of subdomains by characteristics
7.5 Drawbacks of the microservice architecture
7.5.1 Distributed operations are complicated
7.5.2 Implementing changes that span services is complicated