That&#x27;s interesting, I had not come across CompletableFuture yet, I&#x27;ll need to dig in more, but the JavaDoc looks promising (if confusing). It sounds like RxJava may also handle the backpressure issue, where you provide threadpools for the execution and handling of an observable.<p>I haven&#x27;t played with Guava, but I have used Otto a bit, and at one point wrote my own simple observer framework (which is slightly less work than implementing a Java Observer). As I wrote in the disclaimer, there are lots of ways of doing this. =)