One thing we are going to need to look at is the use of volatiles and CAS. It turns out that once you start dealing with a large number of requests volatile writes and CAS starts to have a big impact on performance. For the server we now have a threading model where the exchange is only 'owned' by a single thread, with eliminates the need for volatile variables.