Skip to content

2.0 Design: Hot and Cold #2785

Closed
Closed
@benjchristensen

Description

@benjchristensen

RxJava needs to continue natively supporting both "cold" and "hot" data sources and make it easy to create both and then compose flow control and backpressure.

Reactive Streams lends itself to "cold" data sources by requiring every Publisher to only emit in response to demand received via Subscription.request(n).

ReactiveX implementations on the other hand lends themselves to "hot" datasources where they immediately start emitting without complications of "demand".

RxJava 1.0 is in the middle where it supports both "cold" and "hot", but it takes effort to implement a "cold" source with the Observable.Producer (similar to the RS Subscription).

In RxJava 2.0 we need to embrace the RS Subscription and "cold' behavior but allow creating "hot" data sources as easily as in RxJava 1.0.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions