I just added parallel states (a.k.a concurrent states) support to clj-statecharts, the State Machine and StateCharts for Clojure(Script).
The value proposition of Parallel States becomes more and more prominent when the applications UI gets more complex.
What’s more, this is a major rewrite of the internals (used a lot of the reference algorithm in the SCXML appendix instead of my own one, because the latter is awkward to implement parallel states feature. All the tests still pass, even the core impl code has more than 50% changed!I have not cut a release yet, so the version number is still 0.0.1-SNAPSHOT.
Don’t be scared by that, though, because I have been using it in commodity futures trading for almost half a year now