reactive-streams-commons
reactive-streams-commons copied to clipboard
A joint research effort for building highly optimized Reactive-Streams compliant operators.
In this issue, we should collect tips and tricks with reactive systems and dataflows. These are not particularly advanced topics but the markdown support on GitHub makes it easier to...
From @dsyer > Interesting. Do you mean Mono.fromCallable() (because when I looked at the source code it seemed to me that the Callable.call() only happens when there is a subscribe())?...
This issue, similar to #21, collects some interesting cases and pitfalls in the form of Java Puzzlers, giving a scenario and offering 4-6 answers.
Currently this library uses some queue implementations lifted in spirit and to some extent code out of JCTools. The 2 projects share a contributor, @akarnokd. I would recommend this project...
Distribute the sequence onto N transformable `Publisher` that can be eventually joined back. Ex : ``` java stream.partition(6).dispatchOn(ForkJoinPool.commonPool()).map(service::blockingTask).merge() ``` Supported PartitionPublisher operator : - All PublisherBase - merge() - concat()...
`Backpressurable#getCapacity` can be a useful tool to detect if the source `Publisher` is a `Completable` (0), `Single` (1), `Unbounded` (Long.MAX), `Bounded` (N > 1 && < Integer.MAX) or `Mixed` (-1)...
Currently written with a combination of 2 or 3 operators, timed microbatch like `stream.window(10, () -> PublisherBase.timer(....))` or `stream.buffer(10, () -> PublisherBase.timer(....))` would be useful.
IndexedQueue usually work with volatile consumer indices. We could define a convention to "batch" increment this index by doing it once at the end of drain loops instead of using...
Unbounded Operators should at least implement `Backpressurable#getCapacity() : Long.MAX_VALUE`. Some Unbounded Operators might also benefit from new accounting strategies. Let's find out possible candidate and extract relevant issues.
Review micro fusion path for more dropping back-fusion.