Skip to content

Commit

Permalink
Flowable/Observable
Browse files Browse the repository at this point in the history
Proposed separation of `Observable` and `Flowable` along with description of each and their characteristics.
  • Loading branch information
benjchristensen committed Sep 16, 2015
1 parent db04cfa commit 5153fd5
Showing 1 changed file with 33 additions and 1 deletion.
34 changes: 33 additions & 1 deletion DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,39 @@ Consumer requests data when it wishes, and the data is then pushed when the prod

##### Observable

... under discussion ... (related to Observable/Flowable debate)
Stream that supports async and synchronous push. It does not support interactive flow control (`request(n)`).

Usable for:

- hot and cold sources
- sync or async
- push
- 0, 1, many or infinite items

Flow control support:

- buffering, sampling, throttling, windowing, dropping, etc
- temporal and count-based strategies

##### Flowable

Stream that supports async and synchronous push and pull. It supports interactive flow control (`request(n)`).

Usable for:

- hot and cold sources
- sync or async
- push
- pull
- 0, 1, many or infinite items

Flow control support:

- buffering, sampling, throttling, windowing, dropping, etc
- temporal and count-based strategies
- `request(n)` consumer demand signal
- for pull-based sources, this allows batched "async pull"
- for push-based sources, this allows backpressure signals to conditionally apply strategies (i.e. drop, buffer, sample, fail, etc)

##### Observer

Expand Down

0 comments on commit 5153fd5

Please sign in to comment.