5 Architectural requirements for fast flow
This chapter covers
- The five quality attributes that are essential for fast flow
- The importance of these quality attributes
- How an architecture can satisfy the quality attributes
- The role of an application’s component architecture in determining how effectively these quality attributes are met
In chapter 1, I briefly explained that achieving fast flow - the continuous delivery of a stream of small changes and rapid feedback one each one - requires an architecture that is loosely coupled at design time and supported by a rapid deployment pipeline. In this chapter, I further explore these architectural requirements through the lens of quality attributes, a concept introduced in chapter 3.
A quality attribute is a measurable, desirable property of an application defined through specific scenarios. I will describe how an architecture must satisfy five key quality attributes:
- Modifiability - ease of making changes to the application
- Evolvability - ease of evolving the application’s technology stack
- Testability - ease and speed of verifying that a change is releasable
- Deployability - ease and speed of deploying a change into production
- Observability - ease of understanding the application’s runtime behavior and the behavior of its users