In this talk from NEScala, Brendan McAdams of 10gen will introduce Async/Non-Blocking IO and demonstrate both Netty & Raw NIO -- and discuss strengths and weaknesses of each.
He'll also discuss patterns and concepts around this: The use of callbacks, Either[E, T] to pass errors, implicit tricks to simplify them and even the Iteratee pattern.
...and here are Brendan's slides: