Hi can any one please tell me advantages and disadvantages of using a canonical document, why are now some companies getting rid of canonical documents?Thanks in advance


RMG or some body plz respond


Please refer to this old thread,this should help pros and cons…

Canonicals always have advantages and i dont think companies are trying to get rid of this process.Since mostly these are used for internal document format processing/routing that interacts with backend systems.



Canonicals mapping is advantages specially in a hub scenario, where we need a n to m mapping. Even in a single company scenario, it is the best way to isolate the BackOffice upgrades, interface upgrades, etc.

Only advantage of not using the Canonical mapping is that in short term it reduces the work since you have one less mapping to do. The disadvantage of Canonical mapping is to define Canonical structure of a business document, which could sometimes be quite complicated.

-Rajesh Rao

In many ways, the use of canonicals could be comparable to an SOA strategy with some similar challenges.

As already mentioned, you get the benefit of reuse rather than building multiple parts. This reuse provides the ability to build additional integrations off the base more quickly as well as a more stable environment because there are actually fewer integrations to a single source/target.

In an SOA strategy, the canonical is instead replaced by reusable web services which provides the ability to build more complex integrations even faster.

Whether using web services or canonicals, you will always encounter the challenge of managing change. Updating a canonical or web service that is being leveraged by hundreds of other integrations opens up the door for severe problems. Much like modifying a method that is being used throughout a custom application, you would need the ability to test and ensure that all of the services/messages further down the logical path, at every ‘step’ within an integration, are not affected.

Solstice Software has an integration test suite that allows you to record/replay a baseline at the message/service execution level and solves this problem.

In the interest of full disclosure, I am an employee of Solstice Software and am pointing this out because it is relevant to the discussion at hand. One of the Moderators, Mark Carlson, advised me that relevant postings should be posted but also asked me to point out that I am an employee when referencing Solstice.


Rather than replacing canonicals, I’d suggest that in a good SOA strategy, re-useable web services should take canonicals as parameters.

The whole idea behind canonicals is to minimize the impact of change. However, we never get this perfect, so there will always be a need for tools, whether home-grown or vendor-supplied to help manage it.

My advice would be to never take this fact-of-life as a reason to give up on canonicals.


I agree with you on not to replace canonicals basing on new SOA strategy…


Thanks for the clarification and apologies if I was unclear.

It was not my intention to describe web services as a replacement for canonicals. A good SOA strategy is a natural extension of a good canonical strategy where reusable web services take canonicals as parameters.