Architecture Overview
An App Builder Application is a serverless application that extends Adobe Product APIs. These applications may be headless or headful, as described below.
Headless applications consist of a set of serverless actions or sequences deployed to I/O Runtime, Adobe's serverless platform.
Headless applications integrate well with remote scripts or processes that invoke them, for example AEM Assets workflows or ACS activities.
Headful applications are Single-Page Applications (SPAs) with full-fledged user interfaces (UIs) served from the Content Delivery Network included with App Builder. Headful applications call Adobe Product APIs directly from the client. When there is a need to orchestrate Adobe Product API calls with third-party API calls, or with the Adobe Identity Management System for authentication, you can deploy serverless actions and sequences using Runtime].
Single-Page App Builder applications with full-fledged UIs should follow the JAMStack Architecture.
The three main components of App Builder apps are:
- Adobe Product APIs, exposed to external Developers and consumers through Adobe I/O API Gateway
- Javascript-based SDK and serverless actions, sequences, and APIs deployed to I/O Runtime
- React-Spectrum, Adobe's front-end framework that applies Adobe's design system to React-based components
The CLI is one of the main touchpoints for App Builder Developers. It is based on oclif, a popular framework to build extensible command-line tools.
The CLI is supplied with these capabilities:
- Authentication to Adobe's Identity Management System
- Certificate management
- Configuration management
- Interactions with Adobe Developer Console
- Interactions with I/O Runtime, Adobe's serverless platform
- Lifecycle management for App Builder
Generators help Developers bootstrap App Builder apps when using the CLI. They can be used to create:
- Headless applications
- Full-fledged UI Single-Page Applications that deploy into Adobe's Experience Cloud Unified shell
- Runtime serverless actions extending specific Adobe APIs
App Builder also provides a collection of JavaScript-based SDK libraries designed to increase Developer productivity when implementing custom applications on top of Adobe APIs.
The main SDK library bundles smaller, reusable SDK libraries that serve a variety of use cases:
- The Adobe Analytics SDK library provides a client for the Adobe Analytics 2.0 API
- The Adobe Target SDK library provides a client for the Adobe Target 1.0 API
- The Adobe Campaign Standard SDK library provides a client for the Adobe Campaign Standard API
The Adobe IMS SDK library adds authentication management capabilities to Adobe's Identity Management Services, for these scenarios:
The Core SDK library bundled into the main SDK library provides a lower-level technical framework for Developers.
This framework must be used when contributing to the App Builder SDK, and is recommended for use when building App Builder applications.
The Core SDK library gives Developers these technical capabilities:
The Configuration SDK library allows configurationmanagement of persistent and environment variables .
The Logging SDK library provides a logger abstraction that can be used in SDK libraries and serverless actions deployed to Runtime.
The Errors SDK library is the base implementation for all errors thrown by the SDK libraries; Developers may use it to manage their own errors.
The Networking SDK library provides low-level networking tools such as exponential back-off that can be used in SDK libraries and custom API clients.
The Token-Vending Machine is exposed as an API deployed to Runtime, provided with App Builder.
It lets Developers perform these actions on behalf of their App Builder application credentials:
CI/CD support provided with App Builder for App Builder applications includes:
- GitHub Actions to setup the CLI and use it to perform actions such as application testing, build, and deployment
- GitHub Workflows to orchestrate the GitHub Actions upon specific events triggered against the application repository
- GitHub Secrets to store application secrets required for the execution of the GitHub Workflows against specific environments
App Builder uses webpack for bundling I/O Runtime action code. See Webpack Configuration for an overview on how to configure webpack.
- Migrating Apps to DX Experience Cloud v1 SPAs shows how to migrate App Builder applications initialized as Standalone Applications to a DX Experience Cloud Single-Page Application v1. This is useful if you can't view your application in Adobe Experience Cloud's App Builder Catalog.