Composable Enterprises: Adaptability with a common caller
By Aditya Abeysinghe
Enterprises these days cater wide range of services to customers. Use of a wide range of services not only boosts the name of the provider, but also the marginal profit of the provider. The speed of adopting a new business line into an existing set of services is the adaptability of an organization. This speed depends on the enterprise, external factors and on customers. With uncertainty and rivalry at peak levels, at present, adaptability of an enterprise is one of the factors for its survival.
Composability as a factor
So, why should one think about composability? The word composable means building something from a modular method. Think of this as a set of blocks joined together to form the set of services in an enterprise. Each block has its own function, own data inputs and outputs and own business logic. If a new service needs to be integrated, a new block to existing blocks should be added. If an existing service needs to be removed, that block could be removed. This is the composability expected in a theoretical way.
However, many data driven systems are hard to adapt to change. The reason for this is the approach by which data is handled in such systems. Monolithic applications are applications where the data logic is directly linked to its database(s). The problem comes when a new service needs to be added. Either the existing logic needs to be changed or the databases need to be changed. This is often a timely, costly and error prone process which often results in issues in existing services.
API driven approach
An API (Application Programming Interface) is a common interface by which data could be retrieved by providing a set of inputs. For example, consider a reservation application. A user could call the same application by using a website, a mobile app or a desktop app. The data returned for the same input is same regardless of the application. Only the type of the app and the UI (User Interface) is different. By using an API an interface is open for all callers regardless of the type.
By using API driven calls, new services could be easily integrated, such that all apps calling it is automatically using them. Existing services could also be modified or deleted with minimal issues. Therefore, adaptability of applications by using an API caller is higher compared to those using monolithic applications. Thus, composability is achieved using the API driven approach better than by using standalone apps.
The hype about composability sprung with shifting applications to cloud and ensuring scalability and disaster recovery. The common method of moving applications to cloud is the movement of the current architecture as it is to the cloud. However, scalability and adaptability is often hard to achieve in such a method as it depends on the vendor, if the same architecture is used. Also, if hybrid clouds need to be designed, then scalability in the in-house cloud needs to be separately thought and then merged with public clouds. However, by using APIs for all data driven calls, composability can be ensured for all scenarios as it is dependent on the provider, rather than on the infrastructure.
Image Courtesy: https://www.viget.com