REA-Hruby – Commitment Pattern


  • Commitment Relationships:
    • Provide and Receive relationship between Commitments and Agents
    • Exchange Reciprocity and Conversion Reciprocity relationship between Increment and Decrement Commitments
    • Reservation relationship between Commitments and Resources or Resource Types
    • Fulfilment relationship between Commitments and Events
  • Commitment Properties:
    • Scheduled Date property
    • Scheduled Value property
  • Domain rules

Business reality: Most economic events do not occur unexpectedly. Economic events are usually scheduled or agreed upon beforehand by economic agents. E.g. a sales order line is a promise to sell goods to a customer; the total price is a customer’s promise to pay for the goods, and the seller’s promise to accept the payment.

Problem: How do we model promises of future economic events?


  • General:
    • Application designers would like to have a mechanism in the application model specifying details about the promises of economic events. Eco­nomic events cannot be used for this, because economic events specify actual increments and decrements of resources, while promises result only in reservations of resources.
    • There might be (and usually is) a difference between plans and what ac­tually happens. The users of a business application would like to know whether the economic events occurred as they were promised, and in­formed about eventual differences.
  • Exchange processes:
    • If an enterprise promises to give its own resources to its trading part­ners, users of business application would, most likely, like to know, what resources to expect in return. Conversely, if an enterprise expects to receive some resources, the users of business application would like to know what resources its trading partners expect.
    • The users of a business application would like to know who should be responsible for the received or produced resources, and who should be responsible for the resources used or consumed during the production or given to other economic agents.
    • For each promised exchange, the users of a business application would like to know the trading partners to whom the resources should be trans­ferred, and from whom they should be received.
  • Conversion processes:
    • If an enterprise schedules the production of resources, users of a business application would like to know what resources it would require to use or consume. Conversely, if an enterprise plans to use or consume resources, the users of a business application would like to know what resources will be produced from them.


Model the promise of the economic event as a Commitment entity. A com­mitment in exchange processes represents obligations of economic agents to provide or receive rights to economic resources. A commitment in con­version processes represents schedules of usage, consumption, or production of economic resources.

Each commitment is related to an economic event by a fulfillment rela­tionship, representing the fact that commitments are fulfilled in the future by one or more economic events executed by the participating economic agents (Figure 1).

Commitments usually have properties for the Sched­uled Date or period of the economic event, and the Scheduled Value of the event.

The Scheduled Value does not need to be expressed as an actual num­ber, but, for example, as a rule. For example, the price of a service can be determined according to actual costs.

Commitment and economic events

Figure 1. Commitment and economic events.

Each promised exchange and conversion process consists of at least two com­mitments: increment commitments, which are expected to increase the value of economic resources, and are fulfilled by increment economic events, and their related decrement commitments, which are expected to decrease the value of economic resources, and are fulfilled by decrement economic events. The relationship between increment and decrement commitments identifies which resources are promised to be exchanged or converted to which others, and is called exchange reciprocity or conver­sion reciprocity.

Figure 2 illustrates relationships between commitments, economic events, economic agents, and economic resources in exchange processes.

Figure 3 illustrates the same relationships in conversion processes.

Relationships of commitments in exchange processes

Figure 2. Relationships of commitments in exchange processes.

Relationships of commitments in conversion processes

Figure 3. Relationships of commitments in conversion processes.

The Provide and Receive Relationship

Commitments are related by the provide and receive relationships to the economic agents that are scheduled to participate in economic events, and they consequently determine who should have rights to or the control over economic resources.

The provide and receive are one-to-many relation­ships. One economic agent can participate in zero or more commitments; an economic commitment must have exactly one committed provider and exactly one committed recipient economic agent.

The Exchange Reciprocity and Conversion Reciprocity Relationships

The exchange reciprocity relationship between the increment and decre­ment commitments identifies in the model which resources are promised to be exchanged for which others. Likewise, the conversion reciprocity iden­tifies which resources are promised to be used or consumed in order to produce others.

The commitments paired by the reciprocity relationship do not need to be instantiated (created at runtime) at the same time. For example, the in­surance process illustrated in the Modeling Handbook contains an example of an increment commitment (insurance payment) that is instantiated only under certain conditions specified by the insurance contract. Another ex­ample is a commitment to buy shares of a company, paired with a recipro­cal commitment of dividend payments. The two commitments are instanti­ated at different times.

The Fulfillment Relationship

The purpose of the fulfillment relationship is to validate whether the eco­nomic events fulfill their commitments.

This can often be done automatically. For example, the RECONCILI­ATION PATTERN (Behavioral Patterns) can validate that quantity on the sales order line (i.e., the value of the commitment) is the same as the sum of the shipped quantities (values of the economic events).

Sometimes, a human decision is needed to determine whether the eco­nomic events fulfill their commitments. For example, if a payment com­mitment was fulfilled by payment in different currency, due to variable ex­change rates the monetary value of the commitment can differ from the monetary value of the economic event. In such cases, a human decision might be needed to judge whether the difference is sufficiently small to consider the commitment fulfilled.

The fulfillment relationship is a many-to-many relationship between the economic commitment and the economic event. One economic commit­ment can be fulfilled by several economic events, just as one shipment commitment can be fulfilled by partial shipments, and one economic event can fulfill several economic commitments, just as several installments can be paid once.

The Reservation Relationship

In order to specify what resources will be needed or are expected by future economic events, each economic commitment is related to an economic re­source or a resource type by a reservation relationship. For example, a sales order line is a decrement commitment to ship goods; the sales order line is related by the outflow reservation relationship to the goods or the goods type.

When sales persons accept customer orders, they want a business soft­ware application to check whether there are products available when the order is due, and to make sure that these products will be available to the customers during the economic event related to the economic commitment.


Figure 3. Reservation relationship.

The reservation relationship between the resource and commitment represents the features of the resource and rights associated with the re­source that will be changed or transferred by a future economic event (Figure 3).

The commitment can be related to either a resource type or a resource. For example, a sales order for a new car contains a commitment to deliver a car of a certain model, (i.e., resource type); a sales order for a used car contains a commitment to deliver a physical car (i.e., resource). The reser­vation of a hotel room contains a commitment to provide a hotel room with certain characteristics, such as of a certain size and with certain number of beds (i.e., resource type); but sometimes a guest might require a specific room, in which case the commitment is related to an (actual) resource.

If economic commitment is related to resource type, at some point in the future, but always before the economic events starts, the commitment must also be related to an actual resource that conforms to the reserved resource type (Figure 4).

A commitment must eventually be related to an actual resource.

Figure 4. A commitment must eventually be related to an actual resource.

The time of allocation varies. For example, in the hospitality business, the reservation is related to a room specification until the day of the guest’s arrival. The morning of the day of arrival, the receptionist assigns (a hu­man assisted, and not an automated task) a room numbers for each reserva­tion that starts that day. In the airline business, physical seats are assigned at the time of reservation, with the possibility of replanning. In theatres and cinemas, the tickets are assigned at the time of reservation. The algo­rithm first reserves the best seats within a certain price group, such as those in the middle of the theatre, and later reserves the seats closest to the best places.

We call the commitment fully specified if it is related by the reservation relationship to an (actual) resource.

Domain Rules

The following domain rules apply to any REA application model. As commitments are a mirror image of the economic events at the policy level, the domain rules are similar to the rules for the REA model at opera­tional level, with one addition: commitments must be fulfilled by eco­nomic events. These rules can be used to ensure consistency of REA appli­cation models.

Each commitment must be related to a resource, and might (but does not have to) also be related to a resource type.

Each commitment must be related by provide and receive relation­ships to economic agents.

Each increment commitment must be related by a exchange or con­version reciprocity relationship to a decrement commitment, and vice versa.

Each increment commitment must be related by a fulfillment rela­tionship to at least one increment economic event, and each decre­ment commitment must be related to at least one decrement eco­nomic event.

A commitment that is part of a conversion must be related to the economic event of a conversion process; likewise, a commitment that is part of an exchange must be related to an economic event of an exchange process.


The reciprocity relationship often has additional functionality that relates together the values of the increment and decrement commitments. For ex­ample, in economic exchanges, the reciprocity can calculate the total price (value of the outflow commitments) based on the line item prices (value of the inflow commitments). The reciprocity might also validate that the cost (value of the outflow commitments) is lower than the price (value of the inflow commitments). The functionality of the reciprocity relationship can vary in different implementations; but the fundamental point is that the in­crement and decrement commitments are related.

Source: Hruby, P – Model-Driven Design Using Business Patterns – 2006

Previous: REA-Hruby – Policy Pattern
Next: REA-Hruby – Contract Pattern