Difference between Java Concurrency, Akka and RxJava?

According to Mathias Doenitz at this point in time RxJava doesn't have back pressure unlike Akkas Reactive Streams implementation. But RxJava seems to be working on adding back pressure.

Both frameworks will be able to interact through the reactive streaming spi. So you will be able to do very very similar things. According to Mathias the difference will be that the Akka implementation is based internally on actors, not on multi-threading. And as a result will be more performant.

My source for this information is a talk that Mathias gave last week at the Dutch Scala user group.

edit: I stand corrected wrt back pressure support in RxJava. If you follow Eriks link you can read what back pressure means.


Akka Streams being based on actors provides interop between actors and streams, e.g.:

  • reading from actor and passing it to streams and
  • reading from streams and passing it to actors