【注】由于所评论的链接是英文的,故相应的评论博文使用了英文。希见谅。
This link strongly argues against an integration design principle of using some Canonical Data Model, or Common Data Model for business data. I know about this posting for a couple of year, and would like to provide some comments based on my consulting work at multiple customers.
To summarize, this blog advocates avoiding using a CDM because:
- It is hard to derive a CDM.
- You should avoid a "single huge model".
- Creating CDMs requires a lot of work.
(1) It is indeed hard to arrive at a CDM, But there is a way, and it requires a solution architect - not an enterprise architect - to work with business analysts. Something being difficult cannot be a reason that it should not be done. You didn't mention why people wanted to do it in the first place.
(2) No one said you should only have one single huge CDM model. A CDM data model is more like a placeholder inside a 40" container on a 18-wheeled truck, and the only purpose is to hold the actual goods during the transit on the highway. The CDM is analogous to an instruction sheet to warehouses' handling people on how to receiving these goods from their secured positions in the placeholders inside the container to the shelves inside the warehouse. The instruction sheet may be long since it needs to cover shipping literally anything in the transport container. However, a warehouse's handling of a particular shipment only needs to deal with that many number of placeholders, and not each and every position inside a placeholder is actually used.
(3) Indeed this is true but you have to look at the potential benefits also. Think about why CDM in the first place. It is trying to decouple the systems and applications at the data dimension (in addition to the transport dimension, and together is the real reason you can avoid "point-to-point"). There are also "side effects". For example, the CDMs can be used as the formats to throw integration transaction data and meta data into data lakes as they happen, and this can be an easy starting point of an enterprise's big data and AI strategy.
It is funny in the last paragraph, the blog author asked enterprise architect to "get out of people's way". Well, he might have forgotten why the architect (again it should be a solution architect working on particular business projects that designs the CDMs, not an enterprise architect, especially not one of those "5,000-ft architects") was in the way in the first place - there has been existed painful point-to-point integration architecture. The blog would have been more convincing if the author listed more SHOULDs instead of SHOULDN'Ts. 不要只是破,还要立。
Having said that, the blog did make the points that designing CDMs correctly is a daunting task, and that, if designed improperly, would have negative consequences. I am not saying CDM is a silver bullet. However, risk of being run over by a car should not be the reason you should never cross the street. And this is the blog's 硬伤。