What is a conformed microservice?
The term is borrowed from data warehousing. Data warehouses are repositories of data used for business intelligence analysis. In a DW, data is stored into “fact” and “dimension” tables. Facts hold the data we want to analyze while dimensions store the attributes that describe the objects in a fact table. A conformed dimension is a dimension that has the same meaning to every fact with which it relates.
By analogy, a conformed microservice is a service that has the same meaning across business domains. In other words, the set of functions offered by a conformed microservice is standardized and expected to be identical between any two vendors. For example a Product conformed microservice interface may offer a CRUD interface to its underlying data model. All CRUD operations and any other model-specific functionality should be consistent across vendors.
The immediate benefit resulting from this design is driven exactly by this consistency expectation: a service consumer will have a guarantee on the stability of the interface and the behaviour of such a service, the standardized service definition allowing clients to make virtually no modifications to the back-end connectors. This alone should result in increased code stability and considerably reduced development time which means faster iterations potentially triggering faster innovation.
Another advantage of using conformed microservices comes from the fact that their data model has intrinsic semantics. That has the obvious benefit of providing instant insight into the service by simply inspecting the schema but more importantly, removes the need for data mapping between the application layers. This can be easily achieved by simply adding an exhaustive set of field names to the data model schema. Compared to a generic key value based storage, a conformed model simplifies the overall design of the application.
Based on the degree of specialization, conformed microservices can be horizontal if they can be standardized for a wide variety of business domains or industries, or vertical when they are specialized to meet the needs of a particular business domain or industry. Microservices like User, Product, Message are good candidates for horizontal conformed microservices whereas a Nutrition or a FinancialInstitution microservice could be vertical conformed microservices.
There are also services that based on the intended use or the granularity of the interface can be perceived as horizontal or vertical. For example an audio microservice could be offered through a simple CRUD interface for basic audio manipulation say at the file level or it could add specialized functionality to allow for audio processing.
Another interesting use case is the one for Internet of Things. An IOT microservice can offer an horizontal interface at the top of the IOT hierarchy for managing locations, houses, rooms and a more specialized vertical interface as you get closer to the actual devices.
We believe that standardizing model schemas is beneficial to mobile developers and a mobile backend as a service that maps almost every common noun in the English dictionary to a conformed microservice has an interesting potential.