Some kinds of applications need to have business logic that varies in time. For example tariff tables or used formulas may have multiple versions arranged on a timeline.
Hyperon introduces 3 concepts to meet such requirements: region, version and timeline.
You can divide your business logic into separate areas called regions or create 1 region for all of them. Next fill them with parameters, functions and domain elements which we call versionable items. Technically speaking each versionable item can be assigned to only one region or left unassigned.
Once the regions are created you can define multiple versions of each region. Each version has its code unique within region. At this point, application connected to Hyperon can decide which version to use by simply setting this with Hyperon runtime API.
However, we can arrange region's versions on the region's timeline. Timeline shows which version should be used for any effective date, whether this date is provided by application or taken from system clock.
As in the case of parameters, functions or domain elements, each region and version is identified by code.
Consider sample configuration:
If parameter P is assigned to region A (which we write P@A) it can have different matrix defined for V1 and V2 versions. Similarly, functions F assigned to region B can have different body for standard and promo-april versions.
Above regions' configuration means that: