Status Machina

StatusMachina is a Java state machine library. I designed it from the start to be lightweight, and easy to use. It shines when used to implement small workflows and micro-services sagas.

Design Principles

Easy to use

Status Machina uses the builder pattern to define state machines. As a result, it is very easy to define a state machine. The code is also very readable, as you can see in the examples on GitHub.

Easy Application Framework Integration

Status Machina is easy to integrate into your favorite application framework. The Spring Boot integration arrived first, but it is equally easy to integrate with Micronaut, Quarkus, or VertX.

Extensibility

User defined persistence is one of the core principles applied to Status Machina.

The Spring Boot integration uses a Spring Data JPA persistence implementation by default. But you only need to implement an interface to define a new persistence layer.

As a result, it is very easy to provide an implementation for your favorite stack: Mongo, Redis, Casandra.

Open Source

Status Machina is available as open source software under the Apache 2.0 license.