Programmable Web: COPE: Create Once, Publish Everywhere
Programmable Web: Content Modularity: More Than Just Data Normalization
What strikes me is the focus on data storage and the emphasis on normalizing it to a modular form that enables re-use.
I’ve seen CMSes over the years try and deny the value in this approach – they store content as blobs and force app developers to keep access knowledge and manipulation maintained in the app layer. The idea being that you can never know what content you will need to store down the line, so why attempt to build a normalized store where data is maintained and re-used long term?
In the end, many of these CMSes embrace the Anemic Domain Model anti-pattern that Martin Fowler wrote about. More and more behavior that is related to your domain is pushed in to your app-space or into a services layer.
NPR.org confirms my past experience – the investment in building a modular data store not only establishes a strong foundation – it is one that gains in value over time. It takes research – you need to dig deep into your business’s problem domain – you need to determine what is it that is the core product(s) of your business (note – I didn’t say CMS). For NPR it’s the Story. What is it for yours?
As Martin Fowler said, “In general, the more behavior you find in the services, the more likely you are to be robbing yourself of the benefits of a domain model. If all your logic is in services, you’ve robbed yourself blind.”
Invest the time.
BTW – this isn’t a NOSQL versus RDBMS issue – there are data management solutions among each that can satisfy this.
NPR’s development team has been sharing more regularly on their blog “Inside NPR.org”.