

Overview of reactive programming - reuven
http://blog.hackhands.com/overview-of-reactive-programming/

======
redjazz96
After watching the video, I've got more questions than I did before watching
the video. This concept of reactive programming seems like something that
would have already been thought of; not only that, but it also seems like it'd
be extremely difficult to implement, with little benefit. How is something
like this implemented? How would it be implemented relative to the language
it's written in? Or can it really only be implemented well in certain
languages?

~~~
robertsosinski
I think one of the most important points of Reactive Programming Jafar brings
up is that data can be pushed to a consumer and operated on when it is ready,
instead of being stored and then fetched by a consumer later. This is
important when you are trying to process real-time transactions and analytics;
so you can keep data “moving” through its transformation process instead of
“pooling” data in different stores (storage is a common point of back-
pressure).

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.

~~~
redjazz96
This makes more sense; to me, it just seems like it's not something that's a
big discovery in the field of programming; it just seems like a specific
paradigm for programming, and not something worthy of note. Maybe I'm still
not understanding it well.

Edit: After looking at the other comment, I can see that it is a big paradigm
shift. My bad.

