The decoupled CMS
in financial services
Preston So • 8 Nov 2017 • Open Source Strategy Forum 2017
Welcome!
Preston So has been a web developer and designer since 2001, a
creative professional since 2004, and a Drupal developer since 2007.
As Director of Research and Innovation at Acquia, Preston leads new
open-source and research initiatives and helms Acquia Labs, the
innovation lab featured in international press.
Previously, Preston contributed to the Spark initiative in the Drupal
project, co-founded the Southern Colorado Drupal User Group (est.
2008), and operated an award-winning freelance web and print
design studio. Preston has presented keynotes at conferences on
three continents in multiple languages.
preston.so@acquia.com • @prestonso • #decoupledcmsfinserv
© 2017 Acquia Inc. — Confidential and Proprietary© 2017 Acquia Inc. — Confidential and Proprietary
We're Acquia's innovation lab — a small team of
generalist engineers building co-funded projects in
emerging technologies that push the envelope.
Have forward-looking ideas but need expertise?
Acquia Labs is your innovation partner.
What we'll cover
● What is decoupled CMS?
● Decoupling the front end from the back end
● Risks and rewards of decoupling the CMS
● API-first Drupal: The open-source advantage
● Decoupled CMS and developer experience
● The decoupled CMS in financial services
What is decoupled CMS?1
Think of Earth as one contiguous unit: a monolith.
Earth responds to requests from decoupled bases.
request
response
Monolithic CMSes can back decoupled applications.
HTTP request
HTTP response
CMS
HTTP request
HTTP response
Site or repository
built in CMS
Decoupled
application
CMS
CMS
Site or repository built in
CMS
Decoupled
application
REST API
Decoupled
application
HTTP client
HTTP request
HTTP response
Decoupled CMS
is the use of a CMS as a content
service for consumption and
manipulation by other applications
Decoupled CMS
● A decoupled CMS can be used to back other
back-end applications as well as native
applications, single-page applications, digital
signage, AR-driven interfaces, and many others.
● Web services such as REST APIs or GraphQL APIs
are typical entry points for decoupled CMS
consumers.
For marketers and publishers
decoupled CMS offers the promise of
omnichannel delivery
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
Smart
watches
Fitness
devices
Arduino
boards
Beacons
AR/VR
apps
Rasp-
berry Pi
Conver-
sational
UIs
LED
displays
We have new channels every day.
CMS
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
Smart
watches
Fitness
devices
Arduino
boards
Beacons
AR/VR
apps
Rasp-
berry Pi
Conver-
sational
UIs
LED
displays
And ones we've never heard of yet.
?
?
?
? ?
CMS
For developers
decoupled CMS offers the promise of
front-end freedom
de•coup•led head•less
API•first
Aside: What's in a name?
Decoupling the front end
from the back end
2
Monolithic CMS
CMS
CMS front end
Client
Server
Client
Server
Static pages
CMS
CMS front end
Client
Server
Subscribe to our newsletter
You have been successfully
subscribed!
E-mail address
Submit
full-page refresh
two
bootstraps
Dynamic pages with Ajax
Client
Server
CMS
CMS front end
jQuery
Synchronous
Asynchronous
Ajax
request
Subscribe to our newsletter
E-mail address
Submit
Subscribe to our newsletter
E-mail address
Submit
Subscribe to our newsletter
E-mail address
Submit
Success!
one
bootstrap
The JavaScript renaissance
ushered in an era of innovation and
new development practices
Server-side JavaScript
meant client-side frameworks could
be executed server-side
Universal JavaScript
meant shared code in the form of
JavaScript framework executions
JavaScript framework
(client-side execution)
Node.js
JavaScript framework
(server-side
execution)
CMS
Success!
Here are
others that
might interest
you:
Lorem ipsum
dolor sit
amet,
consectetuer
adipiscing.
Subscribe to our newsletter
E-mail address
Submit
Lorem ipsum
dolor sit
amet,
consectetuer
adipiscing.
Subscribe
E-mail
Submit
Lorem ipsum
dolor sit
amet,
consectetuer
adipiscing.
Dynamic pages with server-side prerendering
Client
Server
Synchronous
Asynchronous
HTTP
request
HTTP
request
Universal (isomorphic) JavaScript
Server Client
Node.js
JavaScript framework
HTML
JavaScript framework
HTML
Synchronous
Asynchronous
executes
renders
flush
bindings by
responds
calls REST API
Universal JS consuming decoupled CMS
Server Client
Node.js
JavaScript framework
HTML
JavaScript framework
HTML
Synchronous
Asynchronous
executes
renders
flush
bindings by
responds
calls REST API
CMS
calls
REST
API
responds
Risks and rewards of
decoupling the CMS
3
Rewards of decoupled CMS
● Separation of concerns. Structure versus
presentation is increasingly relevant in decoupled
architectures.
● Pipelined development. An API-design-first
approach gives front-end and back-end teams
independence.
Rewards of decoupled CMS
● Administrative security. Keeping the
administrative CMS far from public view is
increasingly a best practice.
● Easier resourcing. CMS developers are often now
considered less affordable than JavaScript
developers.
Risks of decoupled CMS
● Loss of contextual administration. Crucial
features such as in-place editing and toolbar can
be key for editors.
● Maintainability difficulties. Maintaining both a
CMS-driven content service service and
consumers requires extensive planning.
Risks of decoupled CMS
● Additional point of failure. Node.js downtime can
lead to inaccessible content in certain cases.
● On-boarding overhead. JavaScript developers
need to learn consumption; CMS developers
change focus.
Summary
Area Rewards Risks
Architecture Separation of
concerns
Loss of contextual
administration
Development
experience
Pipelined
development
Maintainability
difficulties
Security and
performance
Administrative
security
Additional point of
failure
Project management Easier resourcing On-boarding overhead
API-first Drupal and the
open-source advantage
4
What is Drupal?
● Digital experience platform. Drupal is a powerful
open-source CMS for building both web-based
digital experiences with full editorial capabilities
or API-driven digital experiences with developer
flexibility.
● Powers 2.5% of the web. Drupal is used by
organizations like NBC, The Weather Channel, The
White House, Tesla, and Princess Cruises.
Site or repository built in
Drupal
Decoupled
application
Web
services
Decoupled
application
HTTP client
HTTP request
HTTP response
Web services
support interoperable machine-to-
machine interaction over a network
REST APIs
follow REST principles and operate
using HTTP methods
REST APIs
Web services
REST APIs
Core REST JSON API
RELAXed Web
Services
GraphQL
Euler diagram of Drupal web services
JSON API
● JSON API is a specification for REST APIs in JSON
popular among JavaScript developers and
adopted by the Ember and Rails communities.
● JSON API provides a standard way to query single
entities, but it also provides all relationships
contained therein and query operations via query
string parameters.
● drupal.org/project/jsonapi
JSON API
JSON API
(abbreviated payloads,
merely illustrative)
Client issues request for an entity
resource
Server issues response with single
entity and all relationships
GET /jsonapi/node/1
?include=field_author
{
"data": [{
"type": "articles",
"id": "1",
"attributes": {
"title": "Foo",
"body": "Lorem ipsum",
},
...
}],
"included": [{
"type": "people",
"id": "5",
"attributes": {
"name": "Joe"
}
}]
}
GraphQL
● GraphQL, originally created by Facebook to power
its data fetching, is a query language that
enables fewer queries and limits response bloat.
● GraphQL shifts responsibility from the server to
the client: the server publishes its possibilities, and
the client publishes its requirements instead of
receiving a response dictated solely by the server.
● drupal.org/project/graphql
GraphQL
GraphQL
(simplified payloads,
merely illustrative)
Client issues request declaring
data requirements
Server issues response matching
structure of declared requirements
{
title
fieldAuthor {
title
}
}
{
"title": "Foo"
"fieldAuthor": {
"title": "Joe"
}
}
Decoupled CMS and
developer experience
5
Site or repository built in
Drupal
Decoupled
application
Web
services
Decoupled
application
HTTP client
HTTP request
HTTP response
Web
services
Decoupled
application
SDKs and
starter kits
HTTP request
HTTP response
API-first
distros
API-first distros, SDKs, and starter kits improve decoupled DX
SDKs and starter kits
● SDKs can help to make it easier for developers to
consume CMSes as a content service. These tend
to be lightweight HTTP client wrappers which
make requests on the developer's behalf and
process responses.
● Starter kits and references help jumpstart
implementations by providing an out-of-the-box
experience for developers to get started right
away.
The open-source advantage: Waterwheel ecosystem
The Waterwheel ecosystem
● Waterwheel is an emerging ecosystem of SDKs
designed to accelerate development of
Drupal-backed applications in a variety of
technologies.
● Currently, a helper SDK is available for JavaScript
as an initial release and a full SDK is available for
Swift to power iOS, tvOS, and other Apple
applications.
The Waterwheel ecosystem
● github.com/acquia/waterwheel.js
● github.com/kylebrowning/waterwheel.swift
● drupal.org/project/waterwheel
● github.com/acquia/ember-drupal-waterwheel
● github.com/acquia/ember-waterwheel-app
● github.com/acquia/react-waterwheel-app
The open-source advantage: Reservoir and Contenta
API-first distributions
● An ecosystem of distributions oriented for
developers consuming decoupled Drupal is
emerging. The most prominent distributions are
Reservoir and Contenta.
● github.com/acquia/reservoir
● github.com/contentacms/contenta_jsonapi
A good developer experience
means that it's easy to provision
APIs for a group of consumer
applications
A good developer experience
means that it's easy for consumers to
work with the provisioned APIs
The decoupled CMS
in financial services
6
Decoupled CMS is a compelling
architecture for financial services
Rewards for financial services
● Administrative security. Often, sensitive content
is housed in a CMS whose editorial access should
be tightly restricted. Decoupled approaches limit
access to the underlying CMS.
● Single source for digital ecosystems. Financial
services firms with disparate experiences need
one unified place to manage content destined for
those touchpoints, especially mobile apps.
The diversity of open source
optimizes decoupled approaches
Decoupled Drupal is optimal
for financial services architectures
Thank you!
Preston So has been a web developer and designer since 2001, a
creative professional since 2004, and a Drupal developer since 2007.
As Director of Research and Innovation at Acquia, Preston leads new
open-source and research initiatives and helms Acquia Labs, the
innovation lab featured in international press.
Previously, Preston contributed to the Spark initiative in the Drupal
project, co-founded the Southern Colorado Drupal User Group (est.
2008), and operated an award-winning freelance web and print
design studio. Preston has presented keynotes at conferences on
three continents in multiple languages.
preston.so@acquia.com • @prestonso • #decoupledcmsfinserv

The Decoupled CMS in Financial Services

  • 1.
    The decoupled CMS infinancial services Preston So • 8 Nov 2017 • Open Source Strategy Forum 2017
  • 2.
    Welcome! Preston So hasbeen a web developer and designer since 2001, a creative professional since 2004, and a Drupal developer since 2007. As Director of Research and Innovation at Acquia, Preston leads new open-source and research initiatives and helms Acquia Labs, the innovation lab featured in international press. Previously, Preston contributed to the Spark initiative in the Drupal project, co-founded the Southern Colorado Drupal User Group (est. 2008), and operated an award-winning freelance web and print design studio. Preston has presented keynotes at conferences on three continents in multiple languages. preston.so@acquia.com • @prestonso • #decoupledcmsfinserv
  • 3.
    © 2017 AcquiaInc. — Confidential and Proprietary© 2017 Acquia Inc. — Confidential and Proprietary We're Acquia's innovation lab — a small team of generalist engineers building co-funded projects in emerging technologies that push the envelope. Have forward-looking ideas but need expertise? Acquia Labs is your innovation partner.
  • 4.
    What we'll cover ●What is decoupled CMS? ● Decoupling the front end from the back end ● Risks and rewards of decoupling the CMS ● API-first Drupal: The open-source advantage ● Decoupled CMS and developer experience ● The decoupled CMS in financial services
  • 5.
  • 7.
    Think of Earthas one contiguous unit: a monolith.
  • 9.
    Earth responds torequests from decoupled bases. request response
  • 10.
    Monolithic CMSes canback decoupled applications. HTTP request HTTP response CMS
  • 11.
    HTTP request HTTP response Siteor repository built in CMS Decoupled application CMS
  • 12.
    CMS Site or repositorybuilt in CMS Decoupled application REST API Decoupled application HTTP client HTTP request HTTP response
  • 13.
    Decoupled CMS is theuse of a CMS as a content service for consumption and manipulation by other applications
  • 14.
    Decoupled CMS ● Adecoupled CMS can be used to back other back-end applications as well as native applications, single-page applications, digital signage, AR-driven interfaces, and many others. ● Web services such as REST APIs or GraphQL APIs are typical entry points for decoupled CMS consumers.
  • 15.
    For marketers andpublishers decoupled CMS offers the promise of omnichannel delivery
  • 16.
  • 17.
  • 18.
    For developers decoupled CMSoffers the promise of front-end freedom
  • 19.
  • 20.
    Decoupling the frontend from the back end 2
  • 21.
    Monolithic CMS CMS CMS frontend Client Server Client Server
  • 22.
    Static pages CMS CMS frontend Client Server Subscribe to our newsletter You have been successfully subscribed! E-mail address Submit full-page refresh two bootstraps
  • 23.
    Dynamic pages withAjax Client Server CMS CMS front end jQuery Synchronous Asynchronous Ajax request Subscribe to our newsletter E-mail address Submit Subscribe to our newsletter E-mail address Submit Subscribe to our newsletter E-mail address Submit Success! one bootstrap
  • 24.
    The JavaScript renaissance usheredin an era of innovation and new development practices
  • 25.
    Server-side JavaScript meant client-sideframeworks could be executed server-side
  • 26.
    Universal JavaScript meant sharedcode in the form of JavaScript framework executions
  • 27.
    JavaScript framework (client-side execution) Node.js JavaScriptframework (server-side execution) CMS Success! Here are others that might interest you: Lorem ipsum dolor sit amet, consectetuer adipiscing. Subscribe to our newsletter E-mail address Submit Lorem ipsum dolor sit amet, consectetuer adipiscing. Subscribe E-mail Submit Lorem ipsum dolor sit amet, consectetuer adipiscing. Dynamic pages with server-side prerendering Client Server Synchronous Asynchronous HTTP request HTTP request
  • 28.
    Universal (isomorphic) JavaScript ServerClient Node.js JavaScript framework HTML JavaScript framework HTML Synchronous Asynchronous executes renders flush bindings by responds calls REST API
  • 29.
    Universal JS consumingdecoupled CMS Server Client Node.js JavaScript framework HTML JavaScript framework HTML Synchronous Asynchronous executes renders flush bindings by responds calls REST API CMS calls REST API responds
  • 30.
    Risks and rewardsof decoupling the CMS 3
  • 31.
    Rewards of decoupledCMS ● Separation of concerns. Structure versus presentation is increasingly relevant in decoupled architectures. ● Pipelined development. An API-design-first approach gives front-end and back-end teams independence.
  • 32.
    Rewards of decoupledCMS ● Administrative security. Keeping the administrative CMS far from public view is increasingly a best practice. ● Easier resourcing. CMS developers are often now considered less affordable than JavaScript developers.
  • 33.
    Risks of decoupledCMS ● Loss of contextual administration. Crucial features such as in-place editing and toolbar can be key for editors. ● Maintainability difficulties. Maintaining both a CMS-driven content service service and consumers requires extensive planning.
  • 34.
    Risks of decoupledCMS ● Additional point of failure. Node.js downtime can lead to inaccessible content in certain cases. ● On-boarding overhead. JavaScript developers need to learn consumption; CMS developers change focus.
  • 35.
    Summary Area Rewards Risks ArchitectureSeparation of concerns Loss of contextual administration Development experience Pipelined development Maintainability difficulties Security and performance Administrative security Additional point of failure Project management Easier resourcing On-boarding overhead
  • 36.
    API-first Drupal andthe open-source advantage 4
  • 37.
    What is Drupal? ●Digital experience platform. Drupal is a powerful open-source CMS for building both web-based digital experiences with full editorial capabilities or API-driven digital experiences with developer flexibility. ● Powers 2.5% of the web. Drupal is used by organizations like NBC, The Weather Channel, The White House, Tesla, and Princess Cruises.
  • 38.
    Site or repositorybuilt in Drupal Decoupled application Web services Decoupled application HTTP client HTTP request HTTP response
  • 39.
    Web services support interoperablemachine-to- machine interaction over a network
  • 40.
    REST APIs follow RESTprinciples and operate using HTTP methods
  • 41.
    REST APIs Web services RESTAPIs Core REST JSON API RELAXed Web Services GraphQL Euler diagram of Drupal web services
  • 42.
    JSON API ● JSONAPI is a specification for REST APIs in JSON popular among JavaScript developers and adopted by the Ember and Rails communities. ● JSON API provides a standard way to query single entities, but it also provides all relationships contained therein and query operations via query string parameters. ● drupal.org/project/jsonapi
  • 43.
    JSON API JSON API (abbreviatedpayloads, merely illustrative) Client issues request for an entity resource Server issues response with single entity and all relationships GET /jsonapi/node/1 ?include=field_author { "data": [{ "type": "articles", "id": "1", "attributes": { "title": "Foo", "body": "Lorem ipsum", }, ... }], "included": [{ "type": "people", "id": "5", "attributes": { "name": "Joe" } }] }
  • 44.
    GraphQL ● GraphQL, originallycreated by Facebook to power its data fetching, is a query language that enables fewer queries and limits response bloat. ● GraphQL shifts responsibility from the server to the client: the server publishes its possibilities, and the client publishes its requirements instead of receiving a response dictated solely by the server. ● drupal.org/project/graphql
  • 45.
    GraphQL GraphQL (simplified payloads, merely illustrative) Clientissues request declaring data requirements Server issues response matching structure of declared requirements { title fieldAuthor { title } } { "title": "Foo" "fieldAuthor": { "title": "Joe" } }
  • 46.
  • 47.
    Site or repositorybuilt in Drupal Decoupled application Web services Decoupled application HTTP client HTTP request HTTP response
  • 48.
    Web services Decoupled application SDKs and starter kits HTTPrequest HTTP response API-first distros API-first distros, SDKs, and starter kits improve decoupled DX
  • 49.
    SDKs and starterkits ● SDKs can help to make it easier for developers to consume CMSes as a content service. These tend to be lightweight HTTP client wrappers which make requests on the developer's behalf and process responses. ● Starter kits and references help jumpstart implementations by providing an out-of-the-box experience for developers to get started right away.
  • 50.
    The open-source advantage:Waterwheel ecosystem
  • 51.
    The Waterwheel ecosystem ●Waterwheel is an emerging ecosystem of SDKs designed to accelerate development of Drupal-backed applications in a variety of technologies. ● Currently, a helper SDK is available for JavaScript as an initial release and a full SDK is available for Swift to power iOS, tvOS, and other Apple applications.
  • 52.
    The Waterwheel ecosystem ●github.com/acquia/waterwheel.js ● github.com/kylebrowning/waterwheel.swift ● drupal.org/project/waterwheel ● github.com/acquia/ember-drupal-waterwheel ● github.com/acquia/ember-waterwheel-app ● github.com/acquia/react-waterwheel-app
  • 53.
    The open-source advantage:Reservoir and Contenta
  • 54.
    API-first distributions ● Anecosystem of distributions oriented for developers consuming decoupled Drupal is emerging. The most prominent distributions are Reservoir and Contenta. ● github.com/acquia/reservoir ● github.com/contentacms/contenta_jsonapi
  • 55.
    A good developerexperience means that it's easy to provision APIs for a group of consumer applications
  • 56.
    A good developerexperience means that it's easy for consumers to work with the provisioned APIs
  • 57.
    The decoupled CMS infinancial services 6
  • 58.
    Decoupled CMS isa compelling architecture for financial services
  • 59.
    Rewards for financialservices ● Administrative security. Often, sensitive content is housed in a CMS whose editorial access should be tightly restricted. Decoupled approaches limit access to the underlying CMS. ● Single source for digital ecosystems. Financial services firms with disparate experiences need one unified place to manage content destined for those touchpoints, especially mobile apps.
  • 60.
    The diversity ofopen source optimizes decoupled approaches
  • 61.
    Decoupled Drupal isoptimal for financial services architectures
  • 62.
    Thank you! Preston Sohas been a web developer and designer since 2001, a creative professional since 2004, and a Drupal developer since 2007. As Director of Research and Innovation at Acquia, Preston leads new open-source and research initiatives and helms Acquia Labs, the innovation lab featured in international press. Previously, Preston contributed to the Spark initiative in the Drupal project, co-founded the Southern Colorado Drupal User Group (est. 2008), and operated an award-winning freelance web and print design studio. Preston has presented keynotes at conferences on three continents in multiple languages. preston.so@acquia.com • @prestonso • #decoupledcmsfinserv