> > but one would need option to stop the execution in some point of "go" > block, persist it, and continue it later. > Why would you need to stop execution? You could just have a chan, put what you need to persist on it, then then have different go block persist it. Main processing continues on happily.
On Thursday, April 30, 2015 at 1:11:43 PM UTC-4, Vjeran Marcinko wrote: > > If you're looking for something similar to some BPM (BPMN, BPEL...) > engines in Clojure land, I *think* there is nothing similar here. I'm > actually researching that area occasionally, and thinking wishfully about > implementing one in Clojure someday. > > When core.async appeared first, since it also comes from "process area" of > IT (CSP, actors, process algebra...), I thought it would be sufficient for > that case also, but unfortunately it seems it has some strong differences > between BPM engines which are "session-based", meaning, each message that > is received over channel marked as 'session creator' spawns new async > process which is long, very long running (potentially years), and all > subsequent messages that have correlation value for that process are routed > to that session afterwards. > > Biggest similarity is that both approaches (BPM enginer and core.async) > invert control of execution, meaning, you write easy-to-grasp sequential > code which is executed asynchronously, but one would need option to stop > the execution in some point of "go" block, persist it, and continue it > later. In Java, Apache ODDE, which is BPEL engine, uses Pi-calculus engine > underneath, that uses continuations queue and is able to persist the > session on demand, and dehydrate it again when needed, even if that moment > comes a year later.. > > In other words, we need something like durable, restartable, GO blocks, > for each indivudual long-running session, and there can be hundreds of > thousands of them active in a system simultaneously (think about hundred k > of active purchase orders...). > > -Vjeran > > On Thursday, April 30, 2015 at 1:35:25 PM UTC+2, Tim Visher wrote: >> >> Hey All, >> >> Anyone have any tips on clojure 'workflow' libraries? >> https://github.com/relaynetwork/impresario is very close, but lacks some >> basic features like exception transitions, etc. >> >> Basically, I'm looking for a library that allows me to create a workflow >> that will happen asynchronously, recording it's progress in a db. I think i >> could probably whip something together without _too_ much trouble using >> core.async but this feels like something that's probably already been >> written. >> >> Thanks in advance! >> >> -- >> >> In Christ, >> >> Timmy V. >> >> http://blog.twonegatives.com/ >> http://five.sentenc.es/ -- Spend less time on mail >> > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.