views:

343

answers:

4

I've written a high-throughput server that handles each request in its own thread. For requests coming in it is occasionally necessary to do RPCs to one or more back-ends. These back-end RPCs are handled by a separate queue and thread-pool, which provides some bounding on the number of threads created and the maximum number of connections to the back-end (it does some caching to reuse clients and save the overhead of constantly creating connections). Having done all this, though, I'm beginning to think an event-based architecture would be more efficient.

In searching around I haven't found any equivalents to libevent for Java, but maybe I'm not looking in the right place? Mina-statemachine from Apache was the closest thing I found, but it looks more verbose than I need and there's no real release available.

Any suggestions?

A: 

You might be looking for a workflow engine like JBPM or any other open source tool listed here.

saugata
+1  A: 

How about the Light Weight Event System? :) http://www.lwes.org/ and http://sourceforge.net/projects/lwes/files/

Chris Dennett
LWES actually meets a different need - and I happen to work with some of the guys who wrote it :) Thanks for the recommendation, though.
JoelPM
A: 

The answer seems to be 'no', though it looks like the Ruby EventMachine library provides a Java implementation for JRuby users that might be usable or at least serve as inspiration for writing my own: http://github.com/eventmachine/eventmachine/tree/master/java/

JoelPM
+1  A: 

I am a bit late but:

Have you looked at http://www.jboss.org/netty ? Or Grizzly. ( Can't post more than one url )

fedesilva
Thanks, I spent some time looking at Netty and I think it's a good solution.
JoelPM