Presentation at code.talks commerce 2018 (in German)
This project demonstrates the usage of rxjava 2 (in master branch) and Spring reactor (in spring-reactor branch). It
- reads data from a CSV file,
- converts those data,
- enriches them with meta data from an external REST service (via an asynchronous non-blocking http client),
- exports them to another REST service.
This workflow is triggered by the REST request POST http://localhost:8080/imports
.
The external REST services can be either external or internal ones (configured in application.properties
). The internal services has a delay and can therefore be useful to test how the async http client behaves with different thread pool sizes.
MappingChainTest demonstrates concepts for testing rxjava based components.
- rxjava documentation
- Spring reactor documentation
- Comparing Java 8, RxJava, Reactor
- Reactive Streams in Java 9
- Interactive diagrams of Rx Observables
- Schedulers
- Backpressure
- Error handling
- Idiomatic Concurrency — flatMap() vs. parallel()
- Async http client for rxjava 2
- Async http client for Spring reactor