官术网_书友最值得收藏!

Decomposition based on business capability

Business capability refers to structured modeling, which provides a high-level overview of the business. Business capabilities are the top layer of the business architecture and belong to the business domain. We can split a monolithic application into services based on their business capabilities. These services have broad context boundaries, including user interface, persistent storage, and any external collaborations. Consequently, the teams are cross-functional and include the full range of skills required for the development: user experience, database, and project management. 

A business capability refers to how a business architecture model behaves in order to achieve a business goal. A business capability is similar to a business object. Let's define the services of our application based on its business capabilities:

  • Customer Account Management is responsible for managing the account details of the customers
  • Order Management is responsible for managing the customer's orders
  • Book Inventory Management is responsible for managing the book inventories
  • Shipping Management is responsible for managing shipped orders

It is important to understand the core components of the business, such as the user interface, service, data, logging, or messaging. Business capabilities mostly depend on the business and are primarily organized in multiple layers.

A microservice architecture would have services that correspond to each of these capabilities, as follows:

The preceding diagram shows the decomposition of a monolithic application based on its business capabilities. We have identified four business capabilities of the online bookshop application and created a service to correspond to each.

The challenging part of this decomposition is how to identify the business capabilities. Nobody identifies business capabilities perfectly, but a useful place to start is by analyzing the organization's purpose, structure, and business processes. This approach has the following benefits:

  • The architecture is stable since the business capabilities are relatively stable.
  • In the microservice architecture, each development team focuses on delivering business value rather than technical features. These teams are cross-functional and autonomous.
  • The microservice approach provides a cohesive system that has loosely coupled services.

Let's move on to the next section, where we will discuss another approach for decomposing a monolithic application to a microservice-based application.

主站蜘蛛池模板: 临汾市| 海门市| 高邑县| 平塘县| 陆川县| 茌平县| 塔城市| 合山市| 宣城市| 阿克苏市| 淅川县| 杭锦旗| 丽江市| 永清县| 遂平县| 滦南县| 舟山市| 增城市| 隆安县| 灵丘县| 开江县| 岚皋县| 辽中县| 兴城市| 鹤壁市| 江永县| 红河县| 扶风县| 凤翔县| 丹寨县| 新竹市| 拜城县| 峨山| 齐齐哈尔市| 襄樊市| 安义县| 龙岩市| 莆田市| 高尔夫| 城步| 安宁市|