One of the ways that microservices architectures differ from monolithic architectures, is that they add latency to request processing. This has consequences for what techniques you need to use when writing highly performant code. In particular, you need to do more things asynchronously. This talk covers some of my learnings from six years of working with asynchronous microservices and gives you some advice about how to choose a the right tool for the job. Tools and libraries covered: Guava, RxJava and Spotify’s Trickle (which I am one of the authors of). Filmed at JFokus 2015.