Data Model Rule Placement: Subclassing from reuse layers to specialization layers [LSA Data Excellence]
What are the triggers for subclassing from reuse layers to specialization layers?
The primary trigger is when it is reasonable to anticipate that a specialization layer will eventually introduce some sort of specialization of behavior delivered from a reuse layer, even if there is no such application need currently. There is no impact to your application by creating a subclass which has no rules applied to it. Instances of that subclass will rule-resolve to the rules available via inheritance from the superclass, as well as other inheritance-based behavior (e.g. Database Table resolution, Access of Role to Object resolution).
By not subclassing, you limit yourself into Ruleset Specialization as your only specialization technique when that specialization need materializes. This masks the generic implementation available from the reuse layer and can encourage specialization by cloning which introduces a maintenance & upgrade overhead.
Using class specialization, Data Transform and Activity rules can continue to access their superclass implementations "by reference", instead of "by copy".
For classes in a reuse layer that represent Concrete data instances in Pega, subclassing is a trigger when more specialized instances need to be saved into tables specific to the application layer. This is common in Work classes where the cases for Implementation A are stored separately from those in Implementation B, both of which extend a Whitelabelled process W without any further specializations in the case type.
Discussion on this topic was sought from the LSA Data Excellence (Pega 8.4) webinar conducted in July 2020. The webinar and its full set of discussions that arose from it are available at LSA Data Excellence: Webinar, Questions & Answers.