Skip to main content

Specialization design considerations

Ensuring extensibility and scalability in software applications is crucial to accommodating future changes, growth, and increased user demands. The extensibility of applications should not compromise performance and security. The time, cost and effort required for extensibility should be considered while designing and building an application.  

To ensure that rules are extensible in Pega Platform™, always follow object-oriented principles and SOLID principles (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion). However, any principles that support modularity and reusability can be considered for application development. 

The Situational Layer Cake approach

Applications built on Pega Platform follow a 'layer cake' approach, which helps achieve modularity and reusability. As each layer fulfills the requirements of that level, adding one more layer on top of it makes the specialization of the layer simpler. This is known as the Situational Layer Cake™. 

The Situational Layer Cake is the backbone of the Center-out business architecture. The Situational Layer Cake structure consists of Enterprise, Division, and Unit Layers, where each layer wraps everything built at that level. For example, the Division Layer wraps all departments and their applications, reusable business logic, and anything specific to the department. Here, the term 'layer' refers to everything built at a particular level in the application stack. 

The following figure shows an application stack using the Situational Layer Cake approach:

LayerCakeApproachWithOrgSettings

This figure shows organizational settings in applications. However, it is not necessary for the level above the enterprise layer to always be referred to as the Division layer. It can simply be a layer containing an application and reusable code built on an Enterprise layer. The following figure shows an application built on the Enterprise layer without using organizational settings, such as division or unit:

LayerCakeApproachNoOrgSettings

Specialized layer

Specialization or extensibility requirements are either applied to some of the code in the application, or to the whole application. The representation of specialization in the Situational Layer Cake approach is shown in these figures as a separate layer. However, that does not mean that an entire specialized application has to be created. The specialized layer can contain circumstance rules, specialized classes and rulesets, or a specialized application. The specialization to be used is decided based on the 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:  

LayerCakeApproachSpecialization

 

When considering specialization, be aware of the following items: 

  • A specialization layer is not a technical record or rule to be created, it is just 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

The code that you develop according to object-oriented principles is inherently extensible. In fact, 'Build for change' is Pega's philosophy, so Pega applications are highly adaptable to ever-changing business requirements. Pega Platform supports the concept of the Situational Layer Cake through specialization techniques. Specialization of an application refers to extensibility and scalability. Extensibility is the ability to accommodate required changes and add functionality without requiring major modifications, whereas scalability refers to the ability to handle a growing amount of work, resources, and users without impacting performance. 

Pega Platform supports specialization by circumstance, class, ruleset, and application. Performance and maintenance are the two most important factors to be considered while making design decisions on the specialization techniques.

Check your knowledge with the following interaction:


This Topic is available in the following Module:

If you are having problems with your training, please review the Pega Academy Support FAQs.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice