Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info
Experienced Business engineers might use the Dossier Manager (Dossier plugin) for Persistency Management. The functionality described in this design guide is aimed to replace this Dossier Manager.

Terminology

 

 

The following terms play a role within persistency management in Blueriq and will be discussed in this design guide:

  • Aggregate definition
  • Entities, attributes and relations
  • Create, read, update and delete aggregates
  • Lists of aggregates
  • Standard meta data
  • Custom meta data

In future versions, the following functionality will be available and subsequently described here:

...

  • Authorization
  • References

...

Info

The functionality of aggregates is released iteratively, which means that with each release more functionality will become available.

Aggregates

Organizations usually offer more than one product or service to their customers. All these products and services have their own cases, so multiple cases can be running concerning the same customer. To get a good overview of a customer there is a need for shared storage of information, which is shared among the several cases. Ta To accomplish this, the concept aggregate is introduce in Blueriq.   See the example below.

Shown above are three different cases that are all part of a single business model of a fictitious insurance company. The first case concerns a medical insurance, the second a dental insurance and the third a home insurance. These cases use and share information. The medical and dental case both use the medical information and information about persons, whereas the home insurance makes use of the person information and information about houses. These information objects are called aggregates in Blueriq and will typically exist of a couple of on or more  entities with their endogenous relations.

The reason that different aggregates can be created has to do with design, reuse as well as performance. It makes no sense to use information about a house when Housing information is usually not needed deciding about a dental insurance. On the other hand, it is not wanted that a medical insurance case and a dental insurance case each use their own medical information, as they both concern the medical information of the same customer. Finally, loading unnecessary information used in a case will result in unnecessary actions that will have has a negative impact on performance.

Aggregate definition

So, aggregates Aggregates are used to combine information that belongs together, and should be stored and loaded together. In Blueriq, information that belongs together is modeled in an entity. Aggregates simply combine entities.An aggregate typically consists of a couple of entities with their endogenous relations, or as multiple entities with relations between them. An Aggregate is the selection of parts of your domain that can be stored and retrieved together in a single action, and consists of one or more entities. At the moment, only singleton entities can be added to an aggregate definition, but all non-singleton entities that are connected to the singelton are part of the aggregate as well. Also, at the moment it is not possible to create a precise aggregate definition, excluding for instance a few attributes and relations. Shown below is the design of the aggregate Person information, in which the aggregate is blue, and entities pink.

As mentioned before, As  at the moment an aggregate definition can contain only singletons. The , the design of the aggregate Person information will therefore only consist consists of entities Person and CurrentEmployment. However, the entity Person has relations with the non-singleton attributes entities Job and Household, so whenever a person is stored, his or her jobs are also stored, as well as the person's household situation.

...

Working with aggregates

In order for an end user to work with aggregates in cases, it must be possible that these aggregates are displayed in a list. This list functionality is very similar to the list functionality that is already available for instances, tasks and cases and is implemented as a Blueriq container.

...

Aggregates can be created, read, updated and deleted. For these specific actions, services are available in Blueriq.

References between aggregates

Authorization