The subscribe_on, observe_on, and factory operators take the scheduler object as a parameter. As its name implies, a scheduler is an object that is responsible for scheduling the emission of the items of an observable. Scheduling the emission means that, instead of calling the observer callbacks directly in the context of the observable, the emission of the items is transferred to another context. RxPY implement two kinds of scheduler: thread schedulers and event loop schedulers. However, the scheduler principle is very generic and it could be possible to implement much more specific schedulers, such as transferring execution to another IP of a chipset or even another device (even though these use cases should rather be implemented as drivers if the code is designed as functional and reactive).
Three schedulers are of interest when developing an AsyncIO application...