Accessing asynchronous resources

When accessing resources such us RabbitMQ or JMS etc. I usually interact with Java libraries that sequentially call poll method on a class provided by me. To make things simple to process I push it further to Kafka and eventually use Spark to process the data.

But what if I wanted to write a more “conventional” application - simply reading from JMS, doing some processing in-memory and writing results to a file periodically. What is a preferred tool to use by you? I am thinking about Akka Streams with an actor that writes to a source. At the same time I am not sure if this is not an overkill or if there are some sort of connectors for Akka Streams etc.

I would recommend Reactive Streams in general as processing an unbounded stream of events with back pressure is valuable for resource management.

Akka Streams certainly isn’t overkill, and the Alpakka project will help you with JMS et al. You probably won’t need any actors.