Upgrade to Pro — share decks privately, control downloads, hide ads and more …

COPE with Node.js microservices

COPE with Node.js microservices

An overview of different approaches to content management and data architecture, focusing on the principle of COPE using Node.js microservices.

Eduardo Bouças

September 06, 2016

More Decks by Eduardo Bouças

Other Decks in Programming


  1. Going mainstream CMS % of all websites WordPress 26.6 Joomla

    2.8 Drupal 2.2 W3Techs.com, 25 August 2016
  2. • Separation of concerns: content and layout are decoupled •

    Any front-end can be plugged in — RESTful + everyone speaks JSON • A single editing interface can be used to publish to multiple devices Benefits
  3. • Separates data from design • Reduces editorial overhead •

    Content re-usable and future-proof Create Once, Publish Everywhere COPE
  4. Problem #2 Database, core and API still tightly coupled together.

    What happens if the publishing interface needs to change?
  5. • Data architecture and business logic agnostic of tech stack

    • Features as modular, interchangeable components • Universal language • Scalable on a micro-level A wish list
  6. «An approach to developing a single application as a suite

    of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.» Microservices Martin Fowler
  7. API A high-performance RESTful API layer designed in support of

    API-first development and the principles of COPE. Publish A writer’s window to the world of content creation. Flexible interfaces designed to optimise editorial workflow. CDN A just-in-time asset manipulation and delivery layer designed as a modern, global content distribution solution. Web A schemaless templating layer that can operate as a standalone platform or with API as a full stack web application. The suite
  8. The DADI stack DADI API Database DADI Web Templates DADI

    CDN DADI Publish Media Storage Native app

    Android app iOS app (CMS) DADI Web DADI Publish DADI CDN DADI CDN Real example DB shard DB cluster
  10. • > 100 million users a month • Editorial teams

    of up to 400 people • 250,000+ peak concurrent users Some numbers
  11. Track Real-time, streaming data layer providing accurate metrics at individual

    and product level. Drives DADI Machine. Visualise A data visualisation interface for DADI Track, but capable of taking data feeds from virtually any source. People CRM layer that guarantees uniqueness of individuals – and powers segmentation – in the anonymous and known space. Machine A machine learning layer that predicts user behaviour at an individual level based on past interactions. In the pipeline