"Composable" - Demystifying a Buzz Word
It all started with an interesting article published by Gartner - Adopt a Composable DXP Strategy to Future-ProofYour Tech Stack - by the Analysts Irina Guseva , Yefim Natis , Mike Lowndes , Gene Phifer and John Field . The article, published on 16 December 2020 and refreshed 29 June 2022, explains that monolithic platforms must be replaced by a composable DXP.
Here is the humble, but powerful headline from Gartner:
Gartner's article on composable platforms acted as a catalyst, unleashing a deluge of discussions and articles on the topic. However, while these numerous articles delve into the outcomes and benefits of composable platforms, they often fall short in adequately describing the journey to achieving such a state. This gap in content primarily focuses on the end results, neglecting the crucial processes and strategies involved in transitioning to or building a composable DXP.
So let us dig deeper into what Composable DXPs (Digital Experience Platforms) really are, what defines a composable DXP and how software vendors will build such platforms.
1. Why Now?
Composable concepts have been around for decades. In fact, Day Software's Communique (aka as "CQ", the predecessor of the Adobe Experience Manager AEM) was designed to be a "composable" solution! At that time though it was known as a modular CMS.
What Gartner really is pointing out is that monolithic platforms are just too expensive to maintain, too rigid and take too long to adapt to marketing requirements. To "future-proof" a solution stack, they recommend transforming from monolithic systems into composable DXPs instead.
What I see from the projects I am involved in, is the demand for a better business value vs. time/cost ratio. Project implementations require significant investments in time, resources and money. But the real challenges come after the go-live stage, when running and maintaining these solutions. Monolithic platforms, especially when integrating multiple systems, absorb exorbitant amount of resources and fundings, causing big challenges for new innovations.
Although these problems are known since decades, the desperation to attack them is obviously getting imminent.
Gartner correctly recommends to decompose monoliths by moving towards composable DXPs (or platforms).
But what is a composable DXP and what are the advantages over monolithic systems? It's time to demystify the buzzword "composable"!
2. Composable DXPs in a Nut Shell
A composable DXP is a modern approach to building digital experience platforms that emphasizes modularity and flexibility. Unlike traditional, monolithic solutions, which often bundle a wide range of functionalities into a single, integrated solution stack, a composable DXP is built around the concept of using best-of-breed, but also custom-built, interoperable/interchangeable components. The main objectives are to build such modules/components around content strategies and to reduce dependencies to a minimum.
The adoption of a module-based approach in digital experience platforms, exemplified by the composable DXP, is poised to revolutionize the industry, leading to markedly better solutions. This module-based framework facilitates unparalleled flexibility and customization, allowing organizations to handpick best-in-class components or, if needed, to custom-build them, for each functionality. This targeted selection process ensures that each aspect of the digital experience is optimized with the most advanced and suitable tools available. Moreover, the inherent adaptability of a composable DXP enables businesses to swiftly respond to evolving market demands and technological advancements, ensuring continuous improvement and innovation. In essence, this modular paradigm is a significant leap forward, offering enhanced performance, greater agility, and the potential for highly personalized user experiences that were previously unattainable with traditional, monolithic systems.
3. Categories of Composable Platforms
Before we dig into the characteristics of a true composable DXP, let's take a look of what options we have today.
We can define 3 categories of "composable platforms":
We will see that "composable" is not just a concept or strategy, but a significantly different technology framework, customized to build composable experiences.
3.1 "Masqueraded" Monolithic Platforms
Transforming a monolithic digital platform into a composable one is inherently challenging due to their fundamental architectural differences. Monolithic systems are integrated and unified software stacks, with tightly coupled layers, whereas composable platforms are modular, with each component operating independently. This structural disparity makes a direct transformation impractical.
However, monolithic platforms can be enhanced by building additional features around these systems that align with the MACH Alliance principles (Microservices, API-first, Cloud-native, and Headless). This approach involves layering new, more flexible functionalities around the existing monolithic system(s), such as adding microservices or using APIs for connectivity. While this doesn't convert the platform into a composable one, it does enhance its capabilities and can even introduce elements of agility and adaptability. Keep in mind though that this kind of "masquerading" a monolith creates the illusion of "ease of use" and "ease of launch" while in reality, compromising features, adding complexity and the need for more technical resources.
I assume that in their article, Gartner is referring to this form of composability, since there is no reference to a truly composable platform at that time.
3.2 Semi-Composable Platforms
Adobe's Experience Manager (AEM) possesses several attributes of a composable experience platform, making it a unique case in the realm of Digital Experience Platforms (DXPs). It aligns with many criteria of a truly composable DXP, yet it falls short in certain critical aspects, leading me to regard it as a "semi-composable DXP".
The primary limitation stems from its content repository, CRX, which lacks scalability. This issue dates back to 2000, when the Java Content Repository (JCR) was tightly integrated with the AEM instance, resulting in a system that cannot easily scale in response to changing needs. Whoever tried to manage the content repositories for e.g. 3 publish instances will know what I mean.
Furthermore, AEM exhibits interdependencies among its modules or components. While it strives towards a composable framework, these dependencies retain elements of a monolithic structure, impeding the full realization of a composable DXP's ideal of independent, interchangeable, modular components.
Despite these constraints, AEM stands as a leading choice for those seeking to adopt a composable DXP approach. Its blend of composable features and legacy architecture positions it as a semi-composable solution in the evolving landscape of digital experience platforms.
3.3 True Composable Platforms
In the current digital landscape, businesses are increasingly seeking platforms that are both flexible and scalable. However, a major challenge is that many organizations are still operating with traditional monolithic systems that date back decades. These legacy systems, with their inherent rigidity, cannot be easily or seamlessly transformed into composable platforms. Additionally, the high maintenance costs associated with these monolithic systems often drain resources that could otherwise be allocated to new projects. This financial burden further complicates the transition to more adaptable and efficient composable DXPs, underscoring the pressing need for a shift away from these outdated, resource-intensive monolithic architectures.
Addressing and overcoming these challenges necessitates a fresh perspective, embracing innovative thinking and the adoption of new technological concepts.
To effectively structure a true composable DXP, we categorize it into six distinct criteria, each essential for its successful implementation. Then in the following chapter, we'll delve into these criteria, illustrating them with practical examples to better understand their application and impact.
3.3.1 Characteristics of a Composable DXP
In the rapidly evolving digital landscape, the shift towards composable platforms represents a fundamental rethinking of how technology can better serve business agility, innovation, and visitor/customer-centricity. Unlike monolithic systems, which are often rigid, cumbersome to update, and can quickly become outdated, composable platforms offer a dynamic and scalable modular approach. This architecture allows businesses to select, combine, and recombine composable components to tailor solutions that meet their specific needs and adapt in real-time to changing market demands.
As we delve into the six key elements that define a true composable platform, it becomes evident why this approach is not just an alternative but a superior strategy in today’s digital-first world.
4. Architecture of a True Composable DXP
What may seem like a futuristic wishlist for future DXPs is actually achievable with current technologies. During the last 8 years, we at Kleiber Digital and Kestros have defined and developed a true composable DXP, following the six key principles of a true composable DXP.
At the core of a true composable DXP, the pivotal elements are the composable components, which are meticulously designed to run within the OSGi (Open Service Gateway initiative) framework. This framework is renowned for its dynamic module (aka "bundles") system for Java, which significantly enhances the modularity, flexibility, and manageability of applications. By facilitating the runtime addition, removal, and updating of components without necessitating a system restart, the OSGi framework ensures that the DXP can adapt swiftly and efficiently to evolving business needs or user demands.
To augment this architectural foundation, a true composable DXP also incorporates Apache Sling , a web framework tailored for efficient content delivery and dynamic web application development. Apache Sling operates as a pivotal element within the DXP ecosystem, serving as the web framework that facilitates the seamless rendering and delivery of content not only to the end-user, but also between composable components. Sling is built on the principles of REST, making it exceptionally adept at handling HTTP requests and mapping them to the content stored in the JCR content repository.
Complementing the OSGi framework is the Content Repository API for Java Technology, also known as JCR or Jackrabbit Oak , which acts as the cornerstone for dynamic content creation, storage, and distribution within the DXP and to unlimited channels. The JCR is not just a data storage solution; it is a sophisticated content repository that adheres to the JCR standard (JSR-283), offering a uniform API for accessing and managing content data across different storage systems.
The combination of Apache Sling with the OSGi framework and the JCR content repository forms a highly potent trio for a composable DXP. OSGi provides the modularity and runtime flexibility for managing the components of the DXP, including those that are part of or interact with Sling. Meanwhile, Sling bridges the gap between the web layer and content storage, ensuring that content from the JCR can be dynamically created, fetched, rendered, and served in response to http requests.
This architecture empowers the DXP to deliver a highly personalized and responsive digital experience. Whether it's delivering personalized content, supporting multilingual websites, or powering complex web applications, the integration of Sling into the DXP architecture facilitates a more agile, efficient, and user-centric approach to digital experience management.
A Note on JCR Content Repository Scalability
In the realm of digital experience platforms, the Java Content Repository (JCR) stands as a cornerstone for content management, offering a standardized API for seamless content access and storage. However, a longstanding challenge within industry-leading platforms like Adobe's AEM has been the scalability of the JCR content repository. Traditionally, while it's been possible to scale AEM instances, this led to the creation of isolated JCR repositories for each instance, without a straightforward method to synchronize content across them. This limitation posed significant hurdles for organizations aiming to scale their digital experiences efficiently.
Our teams at Kleiber Digital and Kestros have achieved a groundbreaking advancement in overcoming this challenge. Through innovative engineering and strategic architecture design, we have successfully developed a method to scale the JCR content repository beyond the confines of single-instance limitations. This breakthrough not only enhances the scalability of DXPCommerce, a true composable platform, but also ensures that content synchronization across multiple instances is seamless and efficient.
5. Examples of the Six Key Principles of a True Composable DXP
In section 3.3.1 Characteristics of a Composable DXP, I have listed the six key factors that define a true composable DXP.
I will present some practical examples of the six key principles in action. These examples serve as a blueprint for what makes such a composable platform truly adaptable, scalable, and capable of meeting the rapidly evolving demands of the digital age.
These examples have been created with the true composable DXP "DXPCommerce". DXPCommerce is created by Kestros and Kleiber Digital, following the principles of a true composable DXP.
The following examples will not only showcase the implementation of the six key principles of a true composable DXP, but also demonstrate how digital experiences and eCommerce are embedded in one DXP. This ensures that readers can not only understand but also apply these concepts in their own contexts, leveraging DXPCommerce's architecture to explore the full potential of a true composable platform.
5.1 Key Principle "Composable Component"
A true composable DXP is a formation of Composable Components. A Composable Component is essentially an amalgamation of content and functionality. It is designed to provide specific services tailored to the content elements it handles. This functionality can range from straightforward tasks, such as formatting data, to more intricate operations like running a price calculator. Moreover, these components are not just standalone elements; they can be combined to form new, more complex composable components.
The overarching goal of a composable DXP is to enable rapid and cost-effective responses to business and marketing demands. The most efficient strategy to achieve this is through the flexible manipulation of composable components – adding, removing, or modifying them as needed to meet evolving requirements.
An example of this is the JCR-based eCommerce Framework JECIS, which exemplifies the integration of multiple components.
Example 1 - AEM Components
A prime example of composable components in action can be seen in Adobe Experience Manager (AEM), a leading semi-composable DXP. AEM's component framework is specifically designed to empower developers to build, manage, and optimize web experiences. These components are used by authors to populate distinct areas of a Web page.
AEM components typically consist of a dialog - an HTML form to create or edit content elements - and the rendering script. These components are content-centric, interchangeable and can also create content dynamically.
What sets AEM apart as a semi-composable platform is its ability to offer a structured yet flexible approach to web development.
Example 2 - Commerce Components
In the composable eCommerce framework JECIS , the complete commerce environment consists of composable components.
Each Composable Component is fully content-centric and consists of a content dialog and the component functionality.
Authors can create "unlimited" commerce content entries using the component's dialog.
By following the principles of a true Composable DXP it's also possible to allow authors/marketers to create new composable Commerce Components, taking full advantage of dynamic content creation capabilities.
领英推荐
5.2 Key Principle "No-dependency Modularity"
In the realm of digital solutions, the principle of Minimal Dependency Modularity stands as a beacon of efficiency and resilience, sharply contrasting with the traditional, tightly coupled solution stacks. In a conventional solution stack, each layer—ranging from the data storage to the presentation layer—is highly dependent on the functionalities and structures of the other layers. This interdependence can lead to significant challenges, such as increased complexity in updates, scalability issues, and a slower pace of innovation, as changes in one layer might necessitate extensive modifications across the stack.
To underscore the advantages of minimal dependency modularity, consider the architecture of a true composable platform, where components operate with little to no dependencies on each other. This approach allows each component to be updated, replaced, or scaled independently, significantly reducing the risk of cascading failures or disruptions to the overall system. Furthermore, it enables a more agile development environment, where new features can be developed and deployed rapidly without waiting for coordinated updates across other parts of the system.
Example - composable "Sales Promotions"
In the realm of digital commerce, the customization of pricing and promotions starkly illustrates the contrast between traditional monolithic systems and modern composable platforms. Within a monolithic architecture, adjusting the price engine to accommodate new promotional strategies often proves cumbersome, requiring extensive code modifications and testing due to the high degree of interdependency among engines. This rigidity hampers a business's ability to quickly adapt to market changes or launch timely promotions.
Conversely, JECIS , a composable commerce framework that runs inside an OSGi framework, exemplifies the agility and innovation possible with a composable approach. Through its use of independent composable components, JECIS enables the creation of distinct Promotions — each representing a specific promotional event, like a "Promotion for Thanksgiving", defined simply by eligibility dates. More so, Promotion Actions such as 'Discount' or 'Buy-1-get-1-free' are also composable components, capable of being freely linked to any promotion. The content-centric approach allow to assign individual products, categories or even customers to such promotions. This modular system allows for the rapid introduction of new promotional actions as separate, reusable components, significantly enhancing the platform's flexibility and responsiveness to marketing needs. Thus, JECIS's composable structure not only simplifies the customization of promotions but also drastically reduces the time and effort required to launch and manage diverse promotional strategies.
5.3 Key Principle "Content Centric Approach"
The Content-Centric Approach in composable platforms revolutionizes how content/marketing strategies are transformed into engaging digital experiences. By building composable components tailored to this approach, the platform not only streamlines the process of creating and managing digital content but also strategically delegates content responsibilities directly to those who know it best: the authors and marketers. This paradigm shift empowers content creators with the tools and autonomy needed to directly influence the digital presence of their brand, without the constant need for technical intervention. This approach shifts the focus from a traditional API-first mindset ("Here is my API, where is the content?") to a content-centric perspective ("This is my content, what functionality can I use?"). This content-first approach aligns perfectly with modern web experiences.
Example 1 - Hotel Resort Digital Experience
In envisioning a hotel resort's digital presence, the Content-Centric Approach becomes instrumental in weaving together diverse elements—rooms, pools, cabanas, restaurants with menus and tables, and even a boutique—into a seamless and engaging digital experience that also incorporates eCommerce capabilities. By adopting a composable platform, each aspect of a content/marketing strategy of the resort can be represented as an independent, composable component, allowing for unparalleled flexibility and personalization in how content and services are presented and managed online.
Break down the Content Strategy into Composable Components:
By leveraging a content-centric approach, the hotel resort can craft a digital experience that not only meets the diverse needs and preferences of its guests but also dynamically adapts to changing content and market trends. Each composable component is designed to function independently yet integrates seamlessly with others, providing a cohesive and immersive online presence. This modular setup allows for easy updates and modifications, enabling the resort to continuously refine and enhance its digital offering without the need for comprehensive overhauls.
5.4 Key Principle "Dynamic Content Creation"
Among the six key factors that define a true composable platform, dynamic content creation stands out as perhaps the most significant one.
Contrary to the static and schema-bound nature of traditional Relational Database Management Systems (RDBMS), the dynamic content creation capabilities of a JCR (Java Content Repository) offer a fundamentally different and more flexible approach to managing digital content. Utilizing a JCR allows for the dynamic creation of nodes, properties, and values, enabling the seamless population of a hierarchical content model. This method stands in stark contrast to the rigidity of RDBMS, where changes to the database structure often require complex migrations and downtime.
Within the context of a JCR, content objects is stored as a node that can have its own set of properties and child nodes, thereby facilitating a naturally hierarchical and organically scalable structure. This flexibility is instrumental in adapting to the evolving needs of digital experiences, where content structures can vary widely and change rapidly. For instance, in a JCR, adding a new content type or modifying an existing structure is as simple as creating or updating nodes, without the need for altering table schemas or managing relational data constraints.
This dynamic content creation capability is especially powerful in scenarios requiring rapid deployment and updates of content, such as promotional campaigns, content personalization, or multi-lingual content management. By leveraging a JCR, businesses can quickly adapt their content strategies to meet market demands, user preferences, and regulatory requirements, all while maintaining a high level of organizational agility and operational efficiency.
Example 1 - Sling POST Servlet
The Sling POST Servlet is a powerful feature of Apache Sling, which, when combined with the JCR, enables the dynamic creation, modification, and deletion of content objects within a JCR-based application/platform. This servlet is particularly useful for developers working with composable platforms, as it facilitates the rapid and flexible manipulation of content structures directly through HTTP requests, bypassing the need for complex backend processes.
Utilizing the Sling POST Servlet, developers can make HTTP POST requests to create new nodes (content objects) in the JCR, specify properties for these nodes, and even upload files, all with simple form submissions or API calls. This approach significantly streamlines content management tasks, making it straightforward to adapt content in response to new requirements or user feedback.
Example 1a - Using an HTML Form
In this example we create a simple HTML form to add two fields to an existing product within the JCR content repository:
<form method="POST" action="https://localhost:38049/jecis/2bme/content/product/h/hyd/hydra20/hydra_20" enctype="multipart/form-data">
<input type="text" name="demoTitle" value="" />
<input type="text" name="demoText" value="" />
<input type="Submit" />
</form>
Load the HTML page with the above HTML form, enter "Demo Title" for the title field and "Some Demo Text" for the text field and submit.
Example 1b - Using cURL Command
A little more challenging, but nevertheless fascinating, is to use the cURL command:
% curl -u <user>:<password> -FdemoTitle="Demo Title" -FdemoText="Some Demo Text" https://localhost:38049/jecis/2bme/content/product/h/hyd/hydra20/hydra_20
The result will be the same: two fields will be added to the product node.
Example 1c - Custom Servlets
While the Sling POST Servlet offers a powerful and straightforward method for creating and managing content dynamically, there are scenarios where the out-of-the-box functionality might not meet all the specific requirements of a project. Custom POST servlets come into play when there's a need for a higher degree of customization, such as input validation, custom formatting, or the introduction of additional business logic during the content creation or modification process.
The huge advantage of a true composable DXP over monoliths lies in its modular architecture, where each composable component can fully harness the power of dynamic content creation, thereby ensuring an adaptable and innovative digital ecosystem that effortlessly evolves in real-time with business needs and user expectations.
5.5 Key Principle "Dependency-less Content Distribution"
Another powerful feature of a true composable DXP is the concept of dependency-less content distribution (DCD) DCD stands out as a particularly intriguing characteristic in the realm of composable DXPs. This approach centers on the capability of a composable component to autonomously process content. A composable component receives any given content, selectively filters and utilizes what is necessary for its function, and then delivers the processed content.
While at first glance, this might seem akin to a "headless" approach, it's distinctly different. In a headless system, the content distribution responsibility typically lies within the system layer (e.g. CMS or APIs in a monolith) itself, separate from the components. However, in a dependency-less setup, this responsibility shifts to the individual composable component. By doing so, system (and other) dependencies are eliminated, granting each component greater autonomy and flexibility in content handling.
Example 1 - Sling GET Servlet
In the realm of composable DXPs, the principle of Dependency-less Content Distribution marks a significant evolution in how content is managed and served across various channels. This approach ensures that content can be distributed freely and efficiently, without being hindered by tight couplings or dependencies on specific presentation layers or delivery mechanisms. A quintessential example of this concept in action is the Apache Sling GET Servlet. Leveraging this powerful feature, Sling enables the retrieval and presentation of content stored within the Java Content Repository (JCR) in a manner that is both flexible and straightforward, demonstrating the platform's inherent capability for seamless and adaptable content distribution. Through the Sling GET Servlet, content can be dynamically fetched and rendered, supporting a myriad of formats and client needs, thereby embodying the essence of dependency-less content distribution.
Let's open a browser tab and request the node we used in the previous example. By adding the extension .json, the Sling GET servlet will return all properties/values of that requested node.
Even the two new properties demoTitle and demoText have been returned.
The Sling GET servlet can return the properties/values also in an XML format. For that purpose simply replace the extension .json with .xml.
Furthermore you can add a request selector to get different variations of the result. E.g. "1", "2", etc. return the properties of a child node at the according hierarchy level, and "infinity" returns all properties/values of the requested Node and all child nodes.
Example 2 - Sling ValueMap
Due to Sling and JCR managing content in form of nodes and properties, following a "virtual" hierarchical content model, the Sling ValueMap feature comes in handy. ValueMaps are a powerful abstraction provided by Sling, designed to collect all the properties and values of a node into a single, easily accessible object. This feature simplifies the process of retrieving and handling data stored in the repository, allowing developers to interact with content properties in a straightforward and efficient manner.
In this example I use a Sling model class to access the ValueMap of a product node. These are the main properties of a product:
And here is a simple component that uses a ValueMap to retrieve all properties (except for the JCR system being filtered out) and display them.
Each property can of course be addressed directly and positioned wherever needed.
As next enjoy the power of dynamic content creation in conjunction with dependency-less content distribution. I will use our cURL example to add two new properties dynamically and then reload the Web page.
The cURL command:
% curl -u <user>:<password> -FdemoTitle="Demo Title" -FdemoText="Some Demo Text" https://localhost:38049/jecis/2bme/content/product/h/hyd/hydra20/hydra_20
Let's refresh the Web page:
No code change was required to retrieve the new properties.
By aggregating a node's properties into a ValueMap, Sling enables a more intuitive and code-efficient approach to accessing and utilizing content stored within the JCR, thereby enhancing the overall development experience and facilitating the rapid deployment of dynamic digital experiences.
Embracing a true composable DXP within an OSGi, Sling and JCR framework underscores a paradigm shift towards greater power, efficiency, and cost-effectiveness in digital solution development and management compared to monolithic systems. By leveraging the dynamic content creation capabilities of Sling and the hierarchical data management strengths of JCR, organizations can achieve a level of customization and responsiveness that monolithic systems simply cannot match. The result is a streamlined, user/content-centric digital experience that significantly reduces time-to-market and operational costs, while simultaneously enhancing the ability to deliver personalized content and services. In essence, a composable DXP represents the future of digital experiences, offering a compelling alternative that is both forward-thinking and pragmatic in addressing the challenges of today’s digital landscape.
6. Conclusion - true Composable DXP vs. Monolithic Systems
In the rapidly evolving digital landscape, the distinction between true composable Digital Experience Platforms (DXPs) and traditional monolithic systems has never been more critical. Composable DXPs, with their dynamic, modular architecture, offer an agility, flexibility, and scalability that monolithic systems simply cannot match. This approach enables organizations to rapidly adapt to changing market conditions, customer expectations, and technological advancements without the need for cumbersome and time-consuming overhauls.
True composable DXPs excel in delivering tailored experiences that can evolve over time. By leveraging independent, reusable components, businesses can easily introduce new functionalities, integrate with emerging technologies, and pivot strategies to stay ahead of the curve. This modularity also fosters innovation, as teams can experiment with new features or services without risking the stability of the entire system.
Moreover, the content-centric nature and dynamic content creation capabilities of true composable DXPs ensure that digital experiences remain relevant and engaging, enhancing customer satisfaction and loyalty. The ability to distribute content seamlessly across multiple channels, without dependency on a singular system, further solidifies the platform's role in a future-oriented digital strategy.
In contrast, monolithic systems, with their rigid structures and interdependencies, struggle to keep pace with the digital demands of today and tomorrow. The time, cost, and complexity associated with updating these systems can hinder an organization's ability to compete in a fast-moving digital world.
In conclusion, as businesses look towards building resilient, adaptive, and innovative digital experiences, the choice is clear. True composable DXPs not only offer a superior alternative to monolithic systems today but also provide a robust foundation for future growth and transformation. Embracing a composable DXP is not just a strategic advantage—it's a necessity for thriving in the digital age.
#DXP, #CMS, #composableDXP, #DigitalExperience, #DigitalTransformation, #FutureProofTechnology, #ModularArchitecture, #AgileDevelopment, #ContentCentric, #InnovationInTech, #TechTrends