iApps LX State Engine¶
The state engine is responsible for maintaining the collection of blocks (their states, attributes, and values), and is essentially the iApps® LX framework, taking API calls from the users, and interfacing/orchestrating tasks with the processors.
The JSON block instance has multiple potential states. When you make a change to a JSON block instance contained within the state engine, it is alerted, the state is changed (for example from UNBOUND to BINDING), and then it is internally resolved to one of the final states (BOUND/UNBOUND/ERROR), with a BOUND state indicating that the configuration action has been completed successfully.
This full state engine resolution process is a combined effort between external APIs and an internal iApps LX platform system.
About user driven state engine changes¶
Some state engine changes are made from user configurable actions, that are executed by sending REST API requests (such as,PATCH) or alternatively by executing a GUI command (such as, Deploy). The table below shows the state changes that can be performed by the user.
Current State | Possible New State | Description |
---|---|---|
TEMPLATE | None | Marks this JSON block as a template that can be copied. Templates may not go to any new state. |
UNBOUND | UNBOUND | Updates JSON block configuration (no state change). |
UNBOUND | BINDING | Initiates process of translating the configuration. |
BOUND | UNBINDING | Initiates removing active configuration object. |
BOUND | BINDING | Updates existing active configuration with a new configuration. |
ERROR | UNBINDING/BINDING | Retries the state transition action, with or without configuration changes. |
About state engine driven changes¶
Some block states changes can only be made by the iApps LX State Engine, behind the scenes, in response to actions performed by the config. These state transitions should never be made by the users.
Current State | Possible New State | Description |
---|---|---|
BINDING | BOUND | Process of creating the active configuration from this block and has been completed. |
BINDING/UNBINDING | ERROR | Unexpected problem has occurred. See error message for more details. |
UNBINDING | UNBOUND | Process of removing active configurations that come from this block. |
For more information about this internal contract process, see iApps LX Framework Contracts
Below is a graphical representation of the iApps LX block states and transitions:

Example of state engine changes in a JSON block¶
The different states are viewable in JSON block responses. The following is an example of a template, showing the state as TEMPLATE, and then as a block instance with a BOUND state. These states are the result of user driven actions. In the third block, the state is BINDING which is resolved internally by the configuration processor. The BINDING state will either resolve to BOUND or ERROR (not shown in the example).
