Skip to content

Commit f7a5804

Browse files
Merge pull request #3348 from ReactiveX/v2-design-flowable
2.x Design: Flowable/Observable
2 parents 09d5903 + 5153fd5 commit f7a5804

File tree

1 file changed

+33
-1
lines changed

1 file changed

+33
-1
lines changed

DESIGN.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,39 @@ Consumer requests data when it wishes, and the data is then pushed when the prod
4242

4343
##### Observable
4444

45-
... under discussion ... (related to Observable/Flowable debate)
45+
Stream that supports async and synchronous push. It does not support interactive flow control (`request(n)`).
46+
47+
Usable for:
48+
49+
- hot and cold sources
50+
- sync or async
51+
- push
52+
- 0, 1, many or infinite items
53+
54+
Flow control support:
55+
56+
- buffering, sampling, throttling, windowing, dropping, etc
57+
- temporal and count-based strategies
58+
59+
##### Flowable
60+
61+
Stream that supports async and synchronous push and pull. It supports interactive flow control (`request(n)`).
62+
63+
Usable for:
64+
65+
- hot and cold sources
66+
- sync or async
67+
- push
68+
- pull
69+
- 0, 1, many or infinite items
70+
71+
Flow control support:
72+
73+
- buffering, sampling, throttling, windowing, dropping, etc
74+
- temporal and count-based strategies
75+
- `request(n)` consumer demand signal
76+
- for pull-based sources, this allows batched "async pull"
77+
- for push-based sources, this allows backpressure signals to conditionally apply strategies (i.e. drop, buffer, sample, fail, etc)
4678

4779
##### Observer
4880

0 commit comments

Comments
 (0)