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

COPE with Node.js microservices

COPE with Node.js microservices

Talk given at JS Monthly on the 29th of November, 2016, London.

Eduardo Bouças

November 29, 2016

More Decks by Eduardo Bouças

Other Decks in Technology


  1. • 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
  2. • Separates data from design • Reduces editorial overhead •

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

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

    • Features as modular, interchangeable components • Universal language • Scalable on a micro-level A wish list
  5. «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
  6. 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
  7. The stack DADI API Database DADI Web Templates DADI CDN

    DADI Publish Media Storage Native app HTTP request

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

    of up to 400 people • 250,000+ peak concurrent users Some numbers
  10. Fast to market API iOS Android Web CMS CDN iOS

    CMS Team 1 Team 2 Team 3 Team 4
  11. • Holds data architecture and business logic in JSON schema

    • Content stored as documents, grouped in collections • Fully REST (data and metadata) • Customisable with hooks DADI API