Skip to content

Commit 09d5903

Browse files
Merge pull request #3349 from ReactiveX/v2-design-subject
2.x Design: Subject
2 parents 93abe84 + 42bbc26 commit 09d5903

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

DESIGN.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,18 @@ Consumer of events without flow control.
6666

6767
##### Subject
6868

69-
A "hot" data source that allows a producer to emit events and consumers to receive events in a multicast manner.
69+
A "hot", push-based data source that allows a producer to emit events to it and consumers to subscribe to events in a multicast manner. It is "hot" because consumers subscribing to it does not cause side-effects, or affect the data flow in any way. It is push-based and reactive because the producer is fully in charge.
7070

71-
It is "hot" because consumers subscribing to it does not cause side-effects, or affect the data flow in any way. It is push and reactive because the producer is fully in charge.
71+
Relation to Reactive Streams
72+
73+
- It can not implement Reactive Streams `Publisher` unless it is created with a default flow control strategy.
74+
- It can not implement `Processor` since a `Processor` must compose `request(n)` which can not be done with multicasting or pure push.
75+
76+
Flow control support:
77+
78+
- buffering, sampling, throttling, windowing, dropping, etc
79+
- temporal and count-based strategies
80+
- It does not support pull-based consumer-driven flow control.
7281

7382
##### Disposable
7483

0 commit comments

Comments
 (0)