Spring Statemachine


Spring Statemachine is a framework for application developers to use state machine concepts with Spring applications.

Spring Statemachine aims to provide following features:

  • Easy to use flat one level state machine for simple use cases.

  • Hierarchical state machine structure to ease complex state configuration.

  • State machine regions to provide even more complex state configurations.

  • Usage of triggers, transitions, guards and actions.

  • Type safe configuration adapter.

  • Builder pattern for easy instantiation for use outside of Spring Application context

  • Recipes for usual use cases

  • Distributed state machine based on a Zookeeper

  • State machine event listeners.

  • UML Eclipse Papyrus modeling.

  • Store machine config in a persistent storage.

  • Spring IOC integration to associate beans with a state machine.

State machines are powerful because behaviour is always guaranteed to be consistent, making it relatively easy to debug. This is because operational rules are written in stone when the machine is started. The idea is that your application may exist in a finite number of states and certain predefined triggers can take your application from one state to the next. Such triggers can be based on either events or timers.

It is much easier to define high level logic outside of your application and then rely on the state machine to manage state. You can interact with the state machine by sending an event, listening for changes or simply request a current state.

Spring Initializr

Quickstart Your Project

Bootstrap your application with Spring Initializr.


Each Spring project has its own; it explains in great details how you can use project features and what you can achieve with them.
3.0.1 CURRENT GA Reference Doc. API Doc.
2.5.0 GA Reference Doc. API Doc.
2.4.1 GA Reference Doc. API Doc.
2.3.1 GA Reference Doc. API Doc.
2.2.2.RELEASE GA Reference Doc. API Doc.
Branch Initial Release End of Support End Commercial Support *
2021-07-11 2022-07-11 2023-11-11
2021-03-19 2022-03-19 2023-07-19
2021-01-18 2022-01-18 2023-05-18

OSS support

Free security updates and bugfixes with support from the Spring community. See VMware Tanzu OSS support policy.

Commercial support

Business support from Spring experts during the OSS timeline, plus extended support after OSS End-Of-Life.
Publicly available releases for critical bugfixes and security issues when requested by customers.

Future release

Generation not yet released, timeline is subject to changes.

About commercial support (*)

This page shows the current state of project releases and does not define the commercial support policy. Please refer to the official support policy for more information.