This is a simple project that shows how to use Java 9's Flow API to create a Reactive Programming example. It's based on a story: a Magazine Publisher with two different Subscribers, one of them being too slow to pick items.
The guide Reactive Programming with Java 9 Flow explains this code and the fictional use case with detail.
ReactiveFlowApp
creates a Publisher using Java 9'sSubmissionPublisher
. It implements backpressure and dropping of items by setting a timeout for subscribers.MagazineSubscriber
implementsFlow.Subscriber
and let you experiment what happens when subscribers are slow.ColorConsoleAppender
has nothing to do with Java 9 or reactive programming, is just a utility class to set colors to log messages so the result can be understood easier.
If you find something wrong, feel free to create an issue. Same if you have questions. If you want to help me creating more code examples you can buy me a coffee.