- Architecting Cloud Native Applications
- Kamal Arora Erik Farr John Gilbert Piyum Zonooz
- 164字
- 2021-06-24 15:20:56
Functional boundaries
Functional decomposition is by no means a new topic. For programmers, it is the fundamental topic of any programming 101 course. For software analysts, decomposing a system into domains and subdomains is part of the job description. At its core, none of this has changed. You know your functional domain. As a domain expert, you know how to best divvy up your system's functionality. What we are focused on here is how to use that knowledge and take it further to create bounded isolated components that you can deploy and scale with confidence. In essence, we are creating functional bulkheads around our components. We want to share a domain language across all teams to help ensure that everyone has a shared understanding of the innovations we are continuously deploying to these components. We want to apply relevant patterns to components to help ensure the cohesion of a specific component. We want to ensure that each component is focused on a specific responsibility.