Skip to content

Negotiation lifecycle management ​

Intro ​

The Negotiator features mechanisms for 2 finite state machines. One for manipulating the lifecycle of each Negotiation, and the second one is for managing the lifecycle of individual Resources that are a part of a Negotiation. Here is an example of what a basic state machine in the context of Negotiation Lifecycle can look like:

State machine example

Usage ​

Interactions with the state machine are currently handled only via the REST API. This means that the entire lifecycle is represented in a machine-readable way enabling automated interactions.

Implementation ​

The Negotiator uses the Spring state machine framework for handling the exact implementation of the workflow engine. Updating of the appropriate entities is handled by following the Persist recipe/pattern.

Configuration ​

Currently, the configuration for the Negotiation lifecycle workflow is hardcoded in NegotiationStateMachineConfig.java.

Released under the AGPL-3.0 License.