This session will provide an introduction to Reactive Programing based on the ReactiveX library for JavaScript. Reactive Programming is a way to declare reactions to data change using data flows that transform data that crosses them. Although in a JavaScript environment not all data is asynchronous, most of it indeed is: user interaction, Web Workers, server pushes from WebSockets, AJAX calls or any other asynchronous calls.
As client-side applications get more complex so does the management of all of this interrelated data. While Promises are an improved approach to manage this complexity than simple callbacks, Observables, operators and other tools from the Reactive Programming are a superior solution that allows creating data pipes that simplify the declaration of application behaviors. This produces a shorter and meaningful code that is easier to understand than other approaches. Because of this, it makes code more maintenable.
Nowadays much of the application logic is placed in the client, and Reactive Programming is a must when dealing with more than simple applications with a low level of data interrelation and interaction.
RxJS is intensively used in Angular, but can be used by importing a library in combination with others libraries like React or Vue.js, or coding an application from scratch.
For this session, attendees would have some experience building asynchronous applications or have some notions about difficulties building those.
After this session, attendees will understand the basic principles of the Reactive Programming and when they should consider using it in a project.