The world is changing faster than ever. It is vital that we become more agile and more nimble in our ability to respond and adapt to those changes. The proper approach and architecture is a key part of our ability to not only survive but thrive. It’s a competitive differentiator.
One of the biggest changes we are seeing play out in real time is the rise in low code tools, which we need to remove old bottlenecks and empower both developers and marketers to build and launch digital experiences in less time. This is vital to empower the business user to create the applications and experiences that they need quickly.
At the same time, security and data management are more important than ever. We need to find the balance between flexibility and governance to allow us to grow and adapt in a safe way. The solution is deceptively simple: adopt a composable architecture.
What is a Composable Architecture?
In a nutshell, a composable architecture is one in which the architect or developer can assemble their solution from a combination of services, libraries, packages and custom code. We need to be able to quickly add, remove or change the pieces of the architecture to meet the changing needs of the business.
As a framework, Drupal is the original “low code” toolset with a “configuration over code” approach, and it has continued to evolve those underlying patterns. Through years of real world use and millions of hours of developer time, useful patterns have naturally arisen and been standardized. These concepts are elegant, flexible and have security baked in. Let's take a look at the high-level concepts that define a composable architecture.
1) Structured Data and Composable Content
Drupal has an advanced system for managing structured data, which are known as entities. An entity is a loadable “thingy” in Drupal that can be fieldable and revisionable. We can use entities for both content type data as well as configuration type data. This simple pattern allows us to create a very flexible and robust system.
There are many types of default entities: content, components, media, terms, comments, and users. While each entity type has its own unique place and set of functionality, the underlying foundation is the same. We can use the same field types from one to the next, we can load and manage the data in the same basic way, and we can layer on additional specific functionality as needed. Even better, we can create our own custom entities that use the same system but provide completely unique functionality.
2) Layout and Display Powers Composable Design
When most people think of a low code tool, they usually imagine a UI of some type for creating or assembling applications from reusable and configurable bits. Indeed, the ability to control the experience is a fundamental requirement of any good composable system.
Drupal provides a number of valuable patterns here. In addition to content and media, there is also the idea of blocks or components. These are reusable and configurable entities that are designed to be contextually aware and to be used in the display. Drupal also provides a core tool, Layout Builder, that enables a site builder to control much of the output of the page with a visual tool.
On top of this foundation, Acquia’s Drupal Cloud includes a tool called Site Studio which takes the building experience up to 11. Site Studio enables low code creation of styles, templates, and configurable components. In addition, Site Studio provides a powerful visual page builder tool that makes it even easier for content creators to assemble (or compose) their content with minimal effort. This tool simply extends the capabilities of the underlying system.
3) Composable Business Capabilities Built through Low-code Configuration
An important part of any composable architecture is the ability to make changes to the system without needing to deploy code. In fact, one of the biggest factors that can slow down a project is if it requires a code deployment to make small changes. From the beginning, Drupal has had a “config over code” bias that solidified its position as the original low code framework.
With configuration entities, Drupal provides a core method for managing and responding to any type of configuration options in a reliable and secure way. This covers not only the UI aspect of changing the system state but also a code based approach to package and deploy configuration. This also allows the reuse of that configuration for additional sites or applications. The flexibility of supporting both code as well as UI based configuration is massively powerful.
4) API-First Architecture Allows for Open, Composable Technology Stacks
Of course, no modern system would be complete without a reliable way to integrate with other systems via APIs. Drupal provides a core services layer that can be used in a number of ways to power any type of integration or connection. In fact, we find that any limitations with an integration are on the other side of the wire because Drupal is so powerful and flexible.
With JSONAPI in core, GraphQL in contrib, and native support for custom REST endpoints, Drupal defines the hybrid decoupled model that the rest of the industry is striving for. This Hybrid Decoupled provides the best of all worlds and supports the composable experience for both marketers and developers.
A Composable Architecture Powers Agility and Velocity
With a composable architecture, you can drastically reduce the amount of time it takes to create new experiences. Not only does this deliver the agility and velocity that modern organizations demand, it also unlocks resources that can be used to power true innovation.
This focus on agility and innovation is one that will define the thriving organizations of tomorrow. As you look at adopting or enhancing your composable architecture, keep these patterns in mind. With a foundation of structured data, layout and display tools, a configuration over code approach and an API first system, the ability to support the developer and marketer needs ensures that you will be successful with your composable architecture.
For more on how a composable platform approach can help unite developers and marketers to meet their goals faster, register for our upcoming speaking session at DrupalCon North America: “Ending the Feud Between Developers and Marketers.”