Hi folks! Here goes our 0,02€
In our case, we've got a special "PubSubStorage" that extends
"StorageParticipant". It serializes workitem to an external XMPP PubSub
queue and decides wether or not to procced based on a config keyword. The
user interaction with this participant comes in two flavours:
- - ^fill_form
- Abstra::RuoteProject::Participants::PubSubStorageParticipant
- {}
- - ^wait_for_action
- Abstra::RuoteProject::Participants::PubSubStorageParticipant
- {proceed_on: pick}
Once the participant sends the payload to the external queue, the user can
either "pick" the waiting workitem (triggering the next workflow step, ie:
filling up a forrm) or directly fill the form without the wait. The logic
resides on StorageParticipant#on_workitem, which already has information on
the actions that will either keep it holding on or directly proceed (as
seen above). The PubSub server is configured in a way that automatically
persists the queues where workitems are sent. All further communication
inbetween the user and engine can be done either fully async or via HTTP (à
la RuoteKit). Just implement a Command Pattern in your endpoint and
retrieve the workitem from the storage. To decide the recipients of the
workitems (ie. user or groups), an additional AuthorizationService can be
used outside the engine itself. Just define your payload well.
The main goal is to rely on Ruote just for the essential. Keeping it as
simple as possible. Let the enclosing application decide on all
authorization/authentication stuff and the "task assignment logic".
Moreover, any modern PubSub infrastructure (AMQQ, XMPP, JMS) has already
automatic persistence in place, which can be used and abused, instead of
implementing a new queue-specific storage. We've been working like this for
years without further issue. Again, keep it simple :-)
Kind regards,
//nando
--
--
you received this message because you are subscribed to the "ruote users" group.
to post : send email to [email protected]
to unsubscribe : send email to [email protected]
more options : http://groups.google.com/group/openwferu-users?hl=en
---
You received this message because you are subscribed to the Google Groups
"ruote" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.