I've been mucking about with workflow engine architecture over the last three months. At some point I stumbled upon the idea of a "state chart" [0]. Funny thing was, I had already arrived at hierarchical state machines, but I hadn't formalized the idea. Once I had a formal, well thought out definition, I figured I would use it. There are a few state machine libraries for go, but docs were sparse enough that I thought I'd vibe code my own library.
Comalice/statechart is 272 loc. I pressed for brevity so I had a chance to understand what was going on.
I hope this little library can be helpful to others.
I've been mucking about with workflow engine architecture over the last three months. At some point I stumbled upon the idea of a "state chart" [0]. Funny thing was, I had already arrived at hierarchical state machines, but I hadn't formalized the idea. Once I had a formal, well thought out definition, I figured I would use it. There are a few state machine libraries for go, but docs were sparse enough that I thought I'd vibe code my own library.
Comalice/statechart is 272 loc. I pressed for brevity so I had a chance to understand what was going on.
I hope this little library can be helpful to others.
[0] https://statecharts.dev/