Discussion
Pegasystems Inc.
PL
Last activity: 13 Jun 2024 4:20 EDT
Characteristics of Constellation architecture
The Constellation UI employs a Center-out™ approach. It is API first, built on a model-view-controller (MVC) pattern architectural framework and interacts with users through prescribed UI in a stateless manner. It delivers rich, cohesive, intuitive, and accessible user experience to users across different channels. Constellation architecture is based on a solid foundation of enterprise-wide adopted standards.
The following sections describe how following modern architectural paradigms impact the state-of-the-art Constellation architecture of Pega Infinity™. In this blog, discover each topic on a high level, bringing only an overview of each characteristic. Other blogs will cover each Constellation characteristic in more detail.
MVC
MVC architecture is a popular design pattern in software development that provides separation of applications into three main components:
- The model is responsible for modeling data and business logic.
- The view manages the presentation layer and user interactions.
- The controller - the connection between the model and view, handles user inputs and transles them into appropriate actions in the model.
MVC pattern is represented in Constellation architecture by the following component:
- Pega Platform™ and its data, business logic, and workflow processing capabilities is the Model.
- The Constellation design system front-end User Experience is the view.
- The Constellation architecture orchestration layer is the Controller layer and connects to the Model through a cross-channel, model-driven set of APIs: Digital Experience (DX) API.
The "separation of concerns" of the MVC architecture implies that changes to one component usually do not require changes to others and enhance application maintainability, development clarity, and scalability.
Microservices
The Microservices architecture is a way of designing software applications as a collection of small, self-contained, and autonomous services. Microservices typically communicate through lightweight protocols such as HTTP/REST or messaging-based systems. This approach makes the applications easier to develop, manage, and deploy because the design of each service is small and responsible for a single specific end-to-end business function.
Services in the microservice architecture operate independently of each other and through well-defined interfaces. This functionality limits the impact of changes in one service on the overall system. Such an approach also improves scalability as each service can be scaled individually based on demand, allowing the allocation of additional resources when and where they are needed the most. Additionally, Microservices Architecture improves resilience and agility in software deployments.
Some examples of microservices in the Constellation architecture include:
- Cosmos React, a complete out-of-the-box frontend user experience.
- DX API v2, a communication layer, API-driven integration between the client and the server.
- Constellation UI Service, a static content microservice delivering front-end components and static content to the client
Stateless architecture
Stateless architecture, which is often associated with web applications, is a design paradigm where each interaction (request) between client and server occurs as a separate transaction where the server does not maintain any state information about the previous interactions. This approach requires the client to include all necessary information with each interaction, as individual requests that different servers might handle in the back end. Stateless architecture simplifies scalability and resilience and increases fault tolerance, which enables one server to take over the responsibilities of another in case of failure.
The Constellation architecture shifts towards stateless architecture, which results in ending requestor sessions and releasing the Clipboard after each DX API call.
Client orchestration
Client orchestration is a design approach that shifts the generation of the UI and orchestration of UI components from the server to the client side. This approach implies that a client contains all the modules responsible for generating UI and orchestrating actions and communicates with the server only to exchange information. This approach reduces server workloads and network traffic as it involves asynchronous communication with the servers (typically using HTTP methods). It also focuses on optimizing client performance and overall system scalability.
In Constellation architecture the user interface rendering, maintaining client-side state, and runtime orchestration are carried out fully on the client device by the Constellation design system and Constellation orchestration layer, which connects to Pega Infinity through DX API v2.
Prescribed UI
Prescribed UI is a design paradigm that revolves around designing user experience following predefined and high-performing standards (for example, typography and branding standards), templates (layouts, iconography, and interactive components), and guidelines. Such an approach ensures consistency across different parts of an application or multiple applications within the same ecosystem as all the elements are built from the same library of prescribed components. Adhering to prescribed UI principles helps with te quick and intuitive creation of a channel-agnostic unified user experience.
The Constellation design system offers prebuilt and pre-designed workflows, patterns, and components, which enables true application configuration through guided authoring.
Modular architecture
Modular architecture is an approach in software development that involves designing software around smaller, reusable modules. Similar to the Microservices Architecture each module houses a specific functionality and provides an interface to interact with it which promotes ease-of-use, maintainability, and reuse. Complex systems are being built by combining a set of existing and newly created modules and orchestrating their work. Modular architecture encourages a standardized approach to development leading to more reliable and extensible software, streamlining development, and allowing for more consistent and better scalable solutions.
The architecture of Pega Infinity fully supports a modern, modular approach to application building, which enables the grouping of collections of Rules that address specific purposes into reusable modules.
Center-out
The Center-out™ business architecture in software development focuses first on the product's core and then expands outward. It emphasizes identifying and prioritizing the most essential, valuable elements (usually business processes) and building around them. By following such an approach architects ensure that the core is strong and well-defined and build peripheral, supporting elements afterward. It leads to more meaningful and effective outcomes and allows for the maintenance of focus, clarity, and coherence throughout the design process.
In contrast, the traditional models focus on starting either on a high-level view (top-down approach) or small building blocks (bottom-up) without considering business value and outcomes.
Pega's Center-out™ business architecture focuses on delivering customer and business outcomes by defining Microjourneys® to reach those outcomes and identifying what channel and data are needed to complete its steps.
API-first
The API-first approach to designing applications prioritizes designing and building an API before working on any other aspects of the application (such as user interface or backend components). It facilitates collaboration between different teams building software components as they can work in parallel aiming to communicate via clearly defined APIs. Additionally, this approach promotes ease of use, modularity, scalability, and reusability of communication components in software systems.
Pega Constellation applies DX APIs to provide a standardized way of interacting with Pega Platform through a set of model-driven APIs. It assists with the building of consistent user experiences for the Pega applications with channel-agnostic business logic.