I have seen some old discussions on this topic and looks like the best way to do this is to wrap it into a service and expose it ourselves. If anyone has written webservice that allows your users to
1.a) Start a stateful process
1.b) Add facts to a running stateful process
then I would like to know how you solved the following problem
2.a) Forwarding requests of type (1.b) to the server that is running that process (and not to some other server in the cluster)
One solution could be: To just add the request of type 1.b to database and have background jobs on each server in the cluster to poll database and see if there are any outstanding requests of type 1.b for only those processes that are running on that particular server.
I want to know of any solutions that are working for others.