Why does DMP use an external data validation and CWR generation service?
Django Music Publisher (DMP) uses our commercial service for data validation and CWR generation. In this article, I will explain the reasons for this.
Proof of Concept
I started working on DMP while I was on the seaside with a cold. By the time the cold has passed, the initial (18.7) release was mostly done. From the start to the beta, it took exactly one week. The main motive was to make a proof-of-concept for our CWR API.
With all the experience I have, if I chose to make a stand-alone project that would not need this external service, it would have taken me at least a month. Well, it would have taken me a few more weeks to make the validation and then just a few hours to do the CWR generation. But this validation and generation would not have covered everything the service does. Each time the functionality would be expanded, most of the developing time would have been spent in extending the validation. Without the experience, it would have taken many months.
And every project in this domain faces the same dilemma. Whether to go directly for a complete, stand-alone solution or to use our CWR API, have a working solution much faster and then, optionally, replace the functionality that the service provides with their own code.
Now, Ever or Never
The real difference is not just in timing. The main reason why we introduced the service is that we have seen so many projects dealing with batch registrations fail. Bad data structure and underestimating of work needed for achieving compatibility with various entities, due to documented or undocumented differences in CWR implementations, are the two most common reasons for projects failing.
With the 18.11 version, which has almost all CWR related features required for original publishers, I feel it is time to move away from the CWR API. We are looking for sponsors who would be interested in providing DMP to their affiliates/clients to support this move. In the meantime, we are offering the API endpoints DMP uses for free to small publishers.