Subscription implementation draws inspiration from the ReactiveX and reactive streams libraries and provides easy interoperability with them. For more information about these classes please see the quick tour primer.
The ReactiveX scala driver (RxScala) provides extra composability of
Observables compared to the MongoDB
An example implicit based implementation can be found in the examples folder. This includes an implicit based conversion from
rx.Observable and an example of it being used.
The example uses the
Observable.apply(f: (Subscriber[T]) => Unit) method to return a cold observable. It also implements the
Producer trait, so the
Observable can honor “Backpressure” when when using any of the backpressure operators.
The Reactive streams initiative provides interfaces that allow reactive stream based systems to interact. The API is similar to the MongoDB
Observable API but without the composability of the MongoDB implementation.
Converting from an
Observable to a
Publisher is a simple process and can be done in a few short lines of code. An implicit based conversion can be found in the examples folder.