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.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.137.181.75