Overview of reactive programming
blog.hackhands.com
blog.hackhands.com
Also, as the producer now controls the workflow, the it can determine when to “dial-up/down” resources based on what its latency looks like; as well as better handle supervision of consumers -- if fault-tolerance is your thing ;)
Regarding the concept of Reactive Programming; it is not necessarily new, but more tooling is coming out that makes it easier to build in the general sense. Erlang with OTP has been commonly used in the past; Scala/Akka is becoming quite popular now along with GoLang paired with a queueing system such as 0MQ. In fact using Java with a JMS system such as HornetQ can be quite effective as well.
At the end of the day, think about having work being passed on to someone who can do it when it is ready, instead of placing work on someones desk and waiting for it to be done. With the former example, if no one were available to do the work when it is ready, being able to take an action right then and there (e.g. spin up a new node/actor/goroutine, etc.) when you know you need to can help reduce latency.
Hope that helps.
Edit: After looking at the other comment, I can see that it is a big paradigm shift. My bad.
http://news.dice.com/2013/12/06/why-reactive-programming-for...
http://modernweb.com/2013/09/30/functional-reactive-programm...
http://mttkay.github.io/blog/2013/08/25/functional-reactive-...