Canonical Data Models & Microservices
Clarifying the conflicting views
We have been drawn into countless discussions regarding the usefulness of a Canonical Data Model (CDM). This design pattern is fully supported by the application of the Standardised Service Contract design principle that advocates which service contracts be based on standardised data models. But the use of a CDM in the microservices space has become the centre of heated debates among CDM advocates and non-advocates alike.
Canonical Data Model (CDM) is essentially a Service Orientated Architecture (SOA) concept, promoting the reuse of data structures, attributes and data types during messaging between various systems and components. The use of a standardised data model decouples applications by exposing reusable services.
Although it does simplify the understanding of the business data, it could easily become cumbersome and infinitely difficult to manage as requirements, or the number of web services, expands. It is therefore difficult to design and implement from scratch.