$30 off During Our Annual Pro Sale. View Details »

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. BragaJS, September 2016 COPE with Node.js microservices Eduardo Bouças eduardoboucas.com

  2. Part I — Discovery

  3. None
  4. Going mainstream CMS % of all websites WordPress 26.6 Joomla

    2.8 Drupal 2.2 W3Techs.com, 25 August 2016
  5. Content Management System

  6. Content Digital asset Management System

  7. Content Digital asset User Management System

  8. Content Digital asset User Layout Management System

  9. None
  10. Traditional (monolithic) CMS Core Database Admin UI Templates Example: WordPress

    MySQL PHP app /wp-admin WP theme
  11. Problem #1 Long-term commitment to tech stack and CMS components

  12. Problem #2 How to integrate with external systems on different

    tech stacks?
  13. Part II — Headless

  14. Headless CMS Core Database Admin UI API Web server Templates

    Native app
  15. • 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
  16. • Separates data from design • Reduces editorial overhead •

    Content re-usable and future-proof Create Once, Publish Everywhere COPE
  17. None
  18. Problem #1 Web CMS still pivot of entire system.

  19. Problem #2 Database, core and API still tightly coupled together.

    What happens if the publishing interface needs to change?
  20. Problem #3 COPE as an afterthought.

  21. None
  22. • Data architecture and business logic agnostic of tech stack

    • Features as modular, interchangeable components • Universal language • Scalable on a micro-level A wish list
  23. Part III — Microservices

  24. «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
  25. API-first approach Modular components COPE by design Built in Node.js

    Scalable Free and open source
  26. 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
  27. 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
  29. • > 100 million users a month • Editorial teams

    of up to 400 people • 250,000+ peak concurrent users Some numbers
  30. • Scalability • Developer liberation • Fast to market Benefits

  31. Concurrent development API iOS Android Web CMS CDN iOS CMS

    Team 1 Team 2 Team 3 Team 4
  32. 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
  33. Part IV — ?

  34. Thank you. dadi.tech github.com/dadi