>
> 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.

Reply via email to