Architectural capabilities
Whenever we start designing a system, the first thing we start listing is which different sets of capabilities a system will have. These capabilities could be both functional capabilities, as well as non-functional capabilities.
This section tries to capture a list of capabilities that are important in almost any system, but that are of prime importance in data-intensive systems.
We will list the capabilities of the entire system by first dividing the system logically into layers that define logical separation points in the system.
These logical layers are:
- UI layer: This layer contains end user-specific capabilities
- Service gateway/API gateway layer: This layer contains entry point or border capabilities. This is the layer that connects the external world to our internal applications.
- Business service layer: This layer consists of all the capabilities that help to achieve the business objectives in a consistent, efficient, and effective manner. All data agnostic...