Replica patterns deal with repeats of objects or activities without business identity of their own. That include copies or facsimiles as well as transformations that leave business objects unchanged and don’t modify the state of agents expectations.
Replicas make sense for any business object or activity whose identity is meant to be managed:
- Actual objects: physical copies are meaningless if not traced to a single original. But copies are not only identical, they also lack identities of their own. As a counter example, artists may decide to make multiple editions of the same work, each identical, but also identified on its own, and priced accordingly.
- Symbolic objects: derived objects are not duplicate yet their (symbolic) content is computed from other ones and is not meant to be managed directly.
- As for actual objects, a distinction should be made between duplicate roles, by which primary actors delegate part of a single task, and multiple roles, by which a task is performed repeatedly by one or more actors.
- Similarly, one should distinguish between instant replicas of events and cascading ones. Both are meant to necessarily occur whatever may happen, but the former are assured to be known instantly whereas the latter are not.
- Idempotent activities do not modify the state of symbolic representations.
- Regarding processes execution, derived states are just views of actual states and bear no other (direct) relation to actual events or behaviors.
Whereas replicas may be actually defined in business contexts, they are not identified as business objects and therefore cannot be represented by symbolic ones.
Hence the necessary distinction between replicas and editions which are identified business objects created from a common identified template. That the case when works of art have multiple editions.
Symbolic Replicas & Transformations
As far as functional architecture is concerned, transformations patterns should concentrate on operations involving constraints on dependencies between persistency or execution units. Hence, a first distinction should be between basic building blocs, ie views and extracts:
- Views are symbolic objects derived from persistency units. They can be build through a selection of features and/or computation. State views are bound to identified objects and reflect their state at a specific time. Analytic views may be computed on parts or whole of symbolic representations and therefore are not bound to individual ones.
- Extracts are obtained by selecting subsets of business objects, possibly as a basis for views.
Derived connections (“/”) are shortcuts obtained from native ones. The simplest are built from ordered sequences using foreign keys or conditions as selectors.
Rules patterns are used to describe views as well as extracts.
The same reasoning may also be used for duplicate or idempotent operations.