JActor2 as basis for business processes

5 views
Skip to first unread message

vmarcinko

unread,
Mar 4, 2015, 8:31:58 AM3/4/15
to agilewiki...@googlegroups.com
Hello,

I never seriously looked at JActor or other actor libraries, but since JActor has 2-way messages, I feel like I should investigate it first..

Anyway, since I am dissatisfied with current state of BPM (business process management) area in java, whereas most of such tools are tied to heavyweight web service/XML world, I wanted to see if something lightweight could be implemented on top of JActor to help me with implementing business processes.

Business process object should have following characteristics:
- it is stateful
- it can process only one messae at the time, thus no race condition here
- it can request some reply from other process (2 way messaging)
- it can specify timeouts on replies which can be defined even as long as few months
- it is durable, thus will maintain its state after restart of the application

Anyway, some of mentioned characteristics have a lot in common with actors (and JActor), but it seems to me from shallow glance of all actor libraries out there that durability is not some primary concern of such systems, or even long timeouts.

Any comments on whether JActor (or actor libs in general) are well suited for this kind of processes?

Regards,
Vjeran


vmarcinko

unread,
Mar 4, 2015, 8:39:31 AM3/4/15
to agilewiki...@googlegroups.com
Just an example, my process can be some specific PurchaseOrder that has just been created, and is in PENDING_APPROVAL state, and it has created a new process called PurchaseOrderApprovalTask that is currently in CREATED state, and PurchaseOrder now waits for one month to get confirmation event from that task process or it will transition itself to EXPIRED state and do some action. So we have 2 long running processes here that involve human interaction and both of them can wait for very long time until that happens, thus durability is crucial here.

One can have millions of such processes in the app.

William la Forge

unread,
Mar 4, 2015, 9:02:12 AM3/4/15
to AgileWikiDevelopers
Vjeran,

Quite suitable, though you would need to build durability on top of JActor2. I have already started to address this here: http://laforge49.github.io/projects/JActor-Modules/index.html

Unfortunately JActor-Modules is both incomplete and overkill. As well as being undocumented at this point. I would suggest taking a much simpler approach using perhaps Java serialization.

Do please post any questions you may have to this list.

Bill

--
You received this message because you are subscribed to the Google Groups "AgileWikiDevelopers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to agilewikidevelo...@googlegroups.com.
To post to this group, send email to agilewiki...@googlegroups.com.
Visit this group at http://groups.google.com/group/agilewikidevelopers.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages