reactive programming introduction simpler asynchronousmulti threaded execution the approach adopted by rxpy makes it very easy to execute operationsbehaviour within multi threaded environment with independent asynchronous functions available operators the rxpy library comes pre built with numerous operators that make processing the data produced by an observable much easier data composition it is straight forward to compose new data streams (observablesfrom data supplied by two or more other observables for asynchronous processing disadvantages of reactive programming its easy to over complicate things when you start to chain operators together if you use too many operatorsor too complex set of functions with the operatorsit can become hard to understand what is going on many developers think that reactive programming is inherently multi-threadedthis is not necessarily the casein fact rxpy (the library explored in the next two is single threaded by default if an application needs the behaviour to execute asynchronously then it is necessary to explicitly indicate this another issue for some reactive programming frameworks is that it can become memory intensive to store streams of data so that observers can processes that data when they are ready the rxpy reactive programming framework the rxpy library is part of the larger reactivex project and provides an implementation of reactivex for python it is built on the concepts of observablesobserverssubjects and operators in this book we use rxpy version in the next we will discuss observablesobserverssubjects and subscriptions using the rxpy library the following will explore various rxpy operators online resources see the following online resources for information on reactive programmingpatterns book