platform-overview
v--- id: platform-overview title: DXO Overview sidebar_position: 1
The Problems Digital Experience Orchestration (DXO) Solves
In complex technology stacks, there is a need to connect various systems and applications and move data between them. Conscia's DXO offers a zero-code orchestration layer that connects frontends to backends as well as the various backend systems.
Addressing the Challenges with Composable Architectures
-
In a typical headless/composable architecture, every time you launch a new customer touchpoint, you need to develop a custom backend-for-frontend. With the zero-code API orchestration layer, developers no longer need to build frontend specific Backend-for-Frontend (BFF), thereby accelerating the development process by up to 5x.
-
In our journey towards digital transformation, many have turned to headless and composable architectures as the escape route from the monolithic systems of old. Instead, some inadvertently reconstruct the monolith by tightly coupling various backend sytems as well as connecting the frontend too tightly with backend services. The DXO platform creates an abstraction layer between frontends and backends as well as the components of the backends, hence eliminating the coupling between any two components of the composable tech stack.
-
There is continued reliance on legacy systems is one of the top reasons for stifling innovation and delivering amazing digital experiences to your customers. The DXO platform creates an API-first, modernized Data Layer on top of legacy or other existing applications to power modern, composable experiences.
-
Business teams want control over the experiences consumed by the customer on every channel. In the composable and headless stack, business users lost this capability. The control over who should see what content when and where has fallen squarely in the hands of the developers. The DXO platform brings that control back to the product and marketing teams by providing one centralized UI where they can manage experience logic and rules on every channel regardless of where the data, content and business logic resides.
Here is where the DXO sits within your overall tech stack:
Platform Components
Conscia offers the following platform components. Note that each of these components is completely independent of each other and can be purchased separately:
Digital Experience Orchestration Engine (DX Engine)
The DX Engine is a real-time API orchestration engine that orchestrates content and data from various backend applications and packages together a unified and personalized API response for any front-end.
The DX Engine offers:
- A native rules engine to implement conditional and business logic
- A single Experience API that can be called by any client on any channel and is not tied to any specific front-end
- Access to data and content from any backend system, granted that the system is API enabled and is capable of delivering structured data/content
- Ability to chain API calls. This involves taking output from one system and passing it as an input to another system.
- Ability to read and write from/to backend systems in real-time or asynchronously
- Abstraction of your frontend from your backend. The orchestration layer can map backend data model to a frontend model without writing code, allowing you to swap out any backend service without refactoring your frontend code.
- A centralized point of control for marketing teams to manage business logic for omnichannel experiences
Here is what Conscia is NOT:
- A front-end visual composition platform
- A Site/Page Builder
- A WYSIWYG Site Editor
- A front-end as a service platform
- A CMS, DAM or Commerce Engine
Here is a visual depiction of what the DX Engine offers:
Digital Experience Graph (DX Graph)
The DX Graph is an API-first data layer that can be leveraged to modernize legacy systems and make them ready for a modern and composable architecture.
Here are use cases when it makes sense to use the DX Graph:
- The Legacy system doesn't offer APIs, but needs to be integrated into experience architecture
- The business teams need to explore the data from various systems in a single unified interface
- You need to validate the data before publishing it to the frontend experience
- You want to enrich the data with classification and taxonomies
- You want to run bulk data operations and transformations on the data that would be too slow and/or redundant to run in real-time
- The business teams want to use the DX Graph as a PIM or an MDM
- Querying the data in its current source is limited because of the lack of or limitations of the APIs
- You currently don't have the governance and access controls in the legacy systems to expose the data safely to a frontend experience
The DX Graph can:
- Sync and unify data from multiple backend data sources into a graph datastore
- Offer self-service control to non-technical users to view, enrich, auto-tag and classify data and content to prepare for frontend consumption.
- Enrich data through AI-powered and rule-based features.
- Validate data sourced from upstream systems to ensure the quality for downstream applications.
- Make data accessible via real-time APIs, webhooks and batch exports to any destination.
Here is a visual depiction of what the DX Graph offers:
DXO Core Services
Conscia's DXO offers robust capabilities essential for orchestrating data and APIs in a composable tech stack. These capabilities are shared by both DX Graph and DX Engine and can also be used independently of these two modules:
-
Jobs automate and manage various tasks, streamlining complex workflows. To learn more about how Jobs can be used to orchestrate various processes such as syndicating data between various external services, click here:
-
Events are generated by both the DX Graph and DX Engine. Learn more.
-
Triggers initiate Jobs based on specific events and conditions. When an event is generated by the DX Graph, you can define Triggers to execute a Job. When the Job calls an external webservice API, it serves as a Webhook. Learn more.
-
Scheduling allows precise control over job execution timing, ensuring jobs run at optimal times for maximum effectiveness. Learn more.
Types of Orchestrations
Conscia supports two modes of orchestrations:
Synchronous In this mode, the client makes a real-time request to the DX Engine and waits for a response. The DX Engine then executes an orchestration Template that may call various backend systems, chains API calls, stitch data from multiple API responses, transform data, and apply conditional logic to produce a response for the client.
Note that the client may also call the DX Engine via a webhook when a specific event is fired in an external application. You can configure a Listener within the DX Engine to respond to an external webhook.
Asynchronous In Conscia, Asynchronous orchestrations are handled by 'Jobs'. There are two ways that an orchestration can be triggered asynchronously.
-
Event-Based: In this mode, orchestrations are triggered by specific events within the DXO. When an event is fired within Conscia (such as a record updated, deleted or added within the DX Graph), a Job is triggered that can run a set of processes. The Job is queued until sufficient resources are available to run it. This mode is useful when data updated in the DX Graph needs to be synchronized with external systems such as the Commerce Engine.
-
Scheduled: This mode processes data in bulk at scheduled intervals. It is typically used for large volumes of data where real-time processing is not necessary, such as nightly data loads or periodic data synchronization. An example would be loading the data from a file or a DX Graph Collection into a search index.
Jobs can handle the following scenarios:
- Process a file in the bucket and call the DX Engine to orchestrate a set of actions for each record in the file
- Download data from a webservice endpoint to a bucket
- Export data from a DX Graph Collection to a file in a bucket
- Process (validate/transform) a file in the bucket and write to an external endpoint via an API
- Process a DX Graph Collection and write to an external endpoint via an API
For an exhaustive list, please refer to the Integration Patterns.