The Essence Of Reactive Programming