Reactive Programming: Building Responsive and Scalable System