Home / 

A headless CMS, i.e., a backend-only content management system, allows you to manage and re-use digital content from a single repository and publish it on different applications. The absence of a headless architecture can lead to several challenges, including siloed development, slower time-to-market, heavy IT dependency, difficulty in optimization, and more.

An integrated model like a headless CMS with a central Web Services layer can overcome such challenges. Using this approach with Adobe Experience Manager - AEM CaaS and Web Services layer (acting as a backend for business applications) makes it easy to create, manage, test, and deliver experiences across the customer journey. This approach majorly leverages AEM Content Fragments that allow users to create channel-neutral content with variations. They are designed and managed as page-independent assets.

In today’s competitive world, organizations need to adopt an integrated model to leverage best-in-class software systems. They need to act swiftly with market changes and provide a unified, engaging experience to customers across various channels such as web, mobile, business Apps, email, etc., which has propelled them to move towards a distributed architecture.

Here is how a sizable organization’s software infrastructure supporting its digital platform can be categorized.

Data Tier: This is the central hub where data or content resides. Usually, companies require a centralized data tier to manage content efficiently and avoid duplication. A central data tier makes it easier to enforce organization-wide content governance besides ensuring that the content is uniform and reflects a true sense of oneness for the company's overall brand image when used in different applications.

Web Services Tier: Web services are essential for an organization to encapsulate the business logic, integral to the company's core business model. There is a need to maintain a central Web Services layer agnostic of the underlying data/CMS layer.

Application Tier: This tier has the company's business applications used by its customers and drives its revenue. Typically, this tier depends on the Web Services tier, which exposes the data/content from the Data Tier.

Let us discuss how to implement an integrated solution, featuring the best software products in each tier, leading to an optimized IT infrastructure, and translating into higher revenues for companies. In this use case, we will use Adobe Experience Manager (AEM 6.3 or above) for the Data Tier. However, we will use AEM as a headless CMS, leveraging its CaaS feature. For the Web Services tier, we use a custom Spring application built outside AEM. Finally, for the Application tier, let us assume that the company has several business applications built on different technologies like React, Angular, Spring, .NET, etc.

Business Challenges in Using Multiple Systems with Disparate Content Repository and Structure

Long Release Cycles

Business applications perform slow as they pass through a long IT release cycle, making it almost impossible to incorporate the content changes corresponding to the real-time happenings of the world. As a result, it takes longer to publish information about new products, offers, time-sensitive messages, etc., which leads to an increase in time-to-market.

Migrating these applications to the AEM platform is painstaking, mainly because these applications are transactional and require a Swift/agile publishing of changes for the content. While the business logic seldom changes, the content in the form of messages, labels, disclaimers/disclosures, etc., needs to be changed and published swiftly, necessitating the use of AEM as a headless CMS.

Duplication of Content

It is usual to find some overlap of content consumption across business applications. Content curated once could be used in several business applications. To avoid duplication of content and to allow efficient content governance, a company needs to have a central place from where content can be created and published to multiple business applications across various channels.

Brand Inconsistencies

Business applications are often developed in silos and do not have a standard content structure and theme, which reflects poorly on the company's branding. This calls for a centralized platform to publish information about its products, offers, messages, etc., and create consistent branding across its business applications and customer touchpoints.

Poorly Connected Software Systems

The lack of a single, consolidated Web Services layer makes it difficult to regulate connectivity between the application and data tiers. The absence of systematic integration between these software systems hinders the ability to provide a dynamic, cognitive, and seamless experience.

The Solution- AEM as Headless CMS (Content Tier) + Spring Application (Web Tier) + Open Technologies (Application Tier)

The integrated solution comprises of the best-of-breed CMS, AEM, acting as the central hub for all content creation and management. Content created is exposed as JSON response through the CaaS feature in AEM to the Web Services layer. The Web Services layer is built on Spring Boot outside the AEM platform to ensure that the content/data messaging can be processed, business logic can be implemented, and the response can be cached. The separation of this layer from AEM also ensures a long-term stable Web Services layer, agnostic of changes in the underlying CMS.

This pluggable architecture makes it possible for the Web Services layer to continue relaying services seamlessly to several business applications, even if the underlying CMS is replaced with a different one. The Web Services layer uses Amazon S3 to serialize the cached response. In the event of a crash, the cache stored in the JVM (Java Virtual Machine) or memory gets wiped out. In such cases, the cache can be reinstated by deserializing from Amazon S3.

Alternatively, we can use packaged caching software like Redis. Redis provides Java APIs called Jedis to manipulate its cache, which is similar to Amazon S3 APIs. The Web Services layer is fronted with Apigee and uses OAuth2 protocol for the security of Web Services APIs. The business applications pull the content via Apigee. The architecture diagram below shows the process flow.

Solution Architecture Diagram – Integrating AEM (Headless) with Web Services layer

Request Flow

  1. A business application loads on a customer’s device. In the process, it makes a call to an Apigee URL with a token (token is provided to an application when it makes the first call to Apigee with credentials).
  2. Apigee checks the token (for invalid tokens, it returns 403 Forbidden). For valid tokens, it passes the request to the Web Services layer.
  3. The Web Services layer looks up for the response in its cache (Amazon/Redis) based on the request parameters concatenated as the cache key.
  4. If found, the response is returned from this layer (typically, 95% of the requests get returned from the cache).
  5. If not found in the cache, the Web Services layer dispatches the request to AEM, receives the response from AEM, messages the data tier, applies business logic, caches the response (using the parameters concatenated as key) and returns the response.

When new content is created or when an existing content is modified in AEM and published, it makes a call to an endpoint in the Web Services layer, signaling it to clear the cache corresponding to the item published. This ensures that stale content is not shown on business applications.

Configuration of Systems

Adobe Experience Manager

  1. Create a Content Fragment model from which the business content team can create content fragments representing the textual data and digital assets such as images, videos, documents, and more.
  2. Enable CaaS in AEM and use the models and entities to aggregate content as a service. Alternatively, develop custom servlets by leveraging the CaaS feature in AEM to expose the content as JSON response.
  3. If using custom servlets, develop the supporting structure using the components and templates in AEM.
  4. Leverage the language copy feature for multi-lingual content (if applicable) and variations for channel-based content (separate variations could be created for various fragments such as mobile, web, kiosk, email, etc.)
  5. Develop a workflow to automate and streamline the business approval process and email notifications for the authors, approvers, and publishers.
  6. Integrate AEM replication with the Web Services layer to ensure that real-time content changes are reflected despite caching at the Web Services layer.
  7. Set up AEM Author, AEM Publish, Dispatcher, and Web Server stack for AEM.

Web Services Layer

  1. Develop a Spring Boot application and configure deployments into a hosting platform, such as Pivotal Cloud Foundry (PCF) or server containers.
  2. Build custom business logic and data messaging (like data format conversion, designating the fetched content as active/inactive based on time of day, etc.) into the services.
  3. Set up multi-node architecture on PCF/container for the Spring Boot application. This is elastic and adds additional server nodes based on traffic in real-time, to efficiently handle the load.
  4. Implement caching for the generated response and integrate the Web Services layer with Amazon S3 (or Redis) for serializing the cache.
  5. Integrate the Web Services layer with Apigee for OAuth 2-based security for the APIs.

Business Applications

  1. Develop a business application in React or Angular that shows offers, messages, labels, disclosures, and other content to customers by making API calls to the Web Service layer for fetching the content from AEM.
  2. Integrate business applications and Apigee (with Authorization and Refresh tokens). Apigee acts as a proxy directing requests to the Web Services layer if the token is valid.

Read here, how a US-based brokerage firm enhanced user experience by switching to AEM.

Business Benefits of Using AEM as a Headless CMS with the CaaS Model

Utilizing the above-prescribed robust, integrated software solution, a company can improve its business operations dramatically. Here is how.

Shorter Release Cycles Lead to a Faster Time-to-Market

The use of the AEM platform allows for a very swift content creation-to-publishing pipeline, that reduces the time-to-market to mere hours from days or weeks. An efficient content governance model, streamlined deployments, automated workflows, and scheduled publishing allows for quick launches of new products and helps the company stay ahead in the competition.

Central Repository of Content for Consistent Branding

With features like CaaS, content fragment variation for channels and language copy for multiple languages is possible, that can help a company in expanding the business across geographies and channels rapidly. The dedicated caching mechanism results in impressive page load speed for a company’s business applications.

Standardize Content Structure to Make Quick Changes

Using CaaS features like Content Fragments, the existing business applications can continue to use their respective technologies like React, Angular, etc., and yet become smart and agile when pushing content changes rapidly. The dedicated Web Services layer ensures a long-standing, central layer to provision content as service seamlessly even if a company decides to switch to a different CMS later.

To conclude, implementing an integrated solution with AEM CaaS and web services can do wonders in business revenue generation. The ease of using the AEM content management system to author information and a swift publishing mechanism significantly decreases the time-to-market for new products.

Further, provisioning the content via web services eliminates the time and effort otherwise spent on migrating business applications onto the AEM platform. The company gets complete benefits of AEM for content management without incurring high costs while migrating these business applications.

Also, by configuring several applications to consume data from the central AEM repository via a single entry-point in the Web Services layer, the company can project a more unified brand image across all its business applications.