Corrective Policies

When it is too cumbersome to ensure that a {{alias: Business RulesBusiness Rule}} be met all the time, the Domain Model can opt to allow a temporary rupture in the system's sanctity and correct the problem in the background. Such rules are called Corrective Policies.

The best way to implement Corrective Policies is to "reverse" the changes to the system by executing a reverse transaction. For example, if the customer has been erroneously charged for a service, then the corrective policy would perform another transaction that would credit the charge amount back to the customer. This is opposed to an alternative workflow, where the earlier transaction will be deleted from the system.

The business decides which of the Business Rules can be corrective policies, and never the reverse. A corrective policy is only acceptable only if the business deems it as necessary and tolerable from the Domain Model's point of view.