Observable – представляет собой стрим объектов. Подписчики на Observable имеют коллбэки onNext(value), onComplete(), onError(throwable).
onNext() может не вызываться, или вызываться произвольное количество раз.
При завершении стрима вызывается onComplete() или onError().

Single – отправляет объект, который принимается в коллбэке onSuccess(value), или бросает исключение в коллбэк onError(throwable) в случае ошибки.

Completable – не возвращает никакого значения. На подписчиках вызывается onComplete() при удачном завершении или onError(throwable) в случае ошибки.

Maybe – может отработать как Single или как Completable. На подписчиках вызывается один из трех коллбэков: onSuccess(value), onComplete() без какого-либо значения, или onError(throwable). Каждый из коллбэков может быть вызван один раз или не вызван вообще.

Flowable – работает как Observable, но поддерживает backpressure по умолчанию.