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.