tag:blogger.com,1999:blog-768233104244702633.post1109079039456621621..comments2023-11-16T03:16:54.746-08:00Comments on The Scale-Out Blog: Announcing Tungsten Finite State Machine LibraryRobert Hodgeshttp://www.blogger.com/profile/05379726998057344092noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-768233104244702633.post-83960393601689102572010-04-02T09:06:25.334-07:002010-04-02T09:06:25.334-07:00@xasima
I wrote FSM to deal with a very specific ...@xasima<br /><br />I wrote FSM to deal with a very specific problem, which was to write reliable network services that were free from race conditions when processing external commands and events. FSM is much smaller than SCXML (about 4KLOC vs 24KLOC, 30 classes vs 144) and eschews XML configuration files, which I find ugly and hard to debug for large state machines. FSM also has fewer features. For example it does not support parallel state machines which are handy for some types of applications. <br /><br />FSM state machines are therefore local to a single process and ephemeral. Within Tungsten we *do* deal with distributed state as a part of managemet but this is implemented using group communications rather than as an extension of FSM. <br /><br />I looked at SCXML before writing FSM but found it more complex than I wanted. One more thing--at least for our applications FSM appears to be bug free. In particular, FSM offers very simple and strong guarantees for concurrent behavior as stage machines serialize when processing events. SCXML presumably does this as well but FSM is so small you can understand and reason about concurrent behavior very easily.Robert Hodgeshttps://www.blogger.com/profile/05379726998057344092noreply@blogger.comtag:blogger.com,1999:blog-768233104244702633.post-58917377010356567412010-04-02T03:07:23.800-07:002010-04-02T03:07:23.800-07:00Is your FSM planned to be run on top of cluster......Is your FSM planned to be run on top of cluster... probably back ended with the distributed STM to synchronize state changes/transitions across multiple instances (so the state engine will be spawn across cluster, if several node need to be supervised by the same state model)? <br /><br />If no, I can hardly see any differences with small and simple embeddable apache-scxml...xasimahttps://www.blogger.com/profile/08505923529328159066noreply@blogger.comtag:blogger.com,1999:blog-768233104244702633.post-23183538997999993892010-04-02T03:01:07.071-07:002010-04-02T03:01:07.071-07:00Could you please point to the differences with the...Could you please point to the differences with the <br />http://commons.apache.org/scxml/ project except the owning of the development (to doesn't depend on external libs)?xasimahttps://www.blogger.com/profile/08505923529328159066noreply@blogger.comtag:blogger.com,1999:blog-768233104244702633.post-78475369527078226092009-03-16T07:45:00.000-07:002009-03-16T07:45:00.000-07:00@Philippe, the wiki should be fixed. The URL I us...@Philippe, the wiki should be fixed. The URL I used seems to have been incorrect in some way.Robert Hodgeshttps://www.blogger.com/profile/05379726998057344092noreply@blogger.comtag:blogger.com,1999:blog-768233104244702633.post-4136462942691938412009-03-16T07:44:00.000-07:002009-03-16T07:44:00.000-07:00Hi Tom! Just to be clear, I started out planning ...Hi Tom! <BR/><BR/>Just to be clear, I started out planning to use jBPM, as I used it in the past and really liked it. However, it was not missing features--indeed quite the opposite. jBPM turned out to be a lot more complex than we needed. Tungsten FSM has fewer than 25 classes and no dependencies other than log4j. There's no external configuration as it's all driven from within the code itself. We write network services that need to be pretty low to the ground, so the simplicity was just what we needed. It was a little surprising to me that such a "micro-library" for state machines did not already exist or at least was not obvious from searching with Google. The programming model is apparently not as well known as it should be. <BR/><BR/>Cheers, Robert<BR/><BR/>p.s., jBPM is really good. Congrats on a great implementation.Robert Hodgeshttps://www.blogger.com/profile/05379726998057344092noreply@blogger.comtag:blogger.com,1999:blog-768233104244702633.post-72433248945361218682009-03-16T06:54:00.000-07:002009-03-16T06:54:00.000-07:00Could you list the concrete features that were mis...Could you list the concrete features that were missing in jBPM ? Or what blockers you encountered to embed jBPM ?<BR/><BR/>regards, <BR/>Tom Baeyens<BR/>Lead jBPMTom Baeyenshttps://www.blogger.com/profile/03067067751334471585noreply@blogger.comtag:blogger.com,1999:blog-768233104244702633.post-8790106081558562262009-03-16T06:49:00.000-07:002009-03-16T06:49:00.000-07:00No it's not normal! I'm working on fixing permiss...No it's not normal! I'm working on fixing permissions now. Thanks for posting!Robert Hodgeshttps://www.blogger.com/profile/05379726998057344092noreply@blogger.comtag:blogger.com,1999:blog-768233104244702633.post-32286693889148332772009-03-16T03:47:00.000-07:002009-03-16T03:47:00.000-07:00Hi,I'm not able to access your wiki: is that norma...Hi,<BR/><BR/>I'm not able to access your wiki: is that normal?<BR/><BR/>Regards,<BR/><BR/>Philippe LangAnonymousnoreply@blogger.com