This blog post seemed relevant, since we discussed how async I/O worked in Play during Elizabeth's presentation at the last meeting. The examples are all in Scala, so I'm not sure how much of this is possible in Java, but it seems like a good overview of what it is like to work with asynchronous calls in Play.