Specialization design considerations
Design applications to be extensible and scalable to support future changes, growth, and increased user demand. Ensure that extensibility does not compromise performance or security. Consider time, cost, and effort when planning for extensibility. Apply object-oriented principles and SOLID principles (single responsibility, open-closed, Liskov substitution, interface segregation, and dependency inversion) to support modularity and reusability.
The Situational Layer Cake approach
Applications built on Pega Platform™ use a "layer cake" approach to achieve modularity and reusability. Each layer fulfills the requirements for its level, and adding a new layer simplifies specialization. This concept is called the Situational Layer Cake™.
The Situational Layer Cake supports the Center-out® business architecture by defining common assets centrally and introducing only the differences for geography, product, or segment. This approach avoids duplication and silos. The structure can align with organizational layers such as Enterprise, Division, and Unit, where each layer includes everything built at that level. For example, the Division layer includes all departments, their applications, reusable business logic, and department-specific components. In this context, a layer refers to everything built at a particular level in the application stack.
The following figure illustrates the Situational Layer Cake structure and its alignment with organizational layers:
It is not necessary for the level above the enterprise layer to always be the Division layer. It can be any layer that contains an application and reusable code built on the Enterprise layer. The following figure shows an application built on the Enterprise layer without using organizational settings, such as division or unit:
Specialized layer
Specialization or extensibility requirements can apply to some code in the application or the entire application. In the Situational Layer Cake approach, specialization is represented as a separate layer. This does not mean that an entire specialized application must be created. The specialized layer can include circumstance Rules, specialized classes, Rulesets, or a specialized application. The choice depends on requirements and the impact on performance and maintenance. The following figure shows a specialization layer as a pictorial representation of the level that contains the specialized code:
When you consider specialization, be aware that:
- A specialization layer is not a technical record or Rule to be created; it is a representation.
- A specialization layer does not need to be specific to one type of application. Instead, it can support multiple applications across an enterprise.
- Circumstancing and class specialization techniques can eliminate the need to define a specialization application.
Technical aspects of specialization and summary
Code developed using object-oriented principles is inherently extensible. Build for Change® reflects Pega’s philosophy by making applications adaptable to changing business requirements. Specialization refers to extensibility and scalability. Extensibility is the ability to accommodate changes and add functionality without major modifications. Scalability is the ability to handle increased work, resources, and users without affecting performance.
Pega Platform achieves Situation Layer Cake through specialization techniques such as circumstance, class, Ruleset, and application. Performance and maintenance are the two most important factors to consider when designing specialization techniques.
Check your knowledge with the following interaction:
This Topic is available in the following Module:
Want to help us improve this content?