This code shows a real World project with:
- Java 11
- Vert.x (properly mixed with blocking code)
- Guice
- RxJava
- Apache Avro
- ElasticSearch
- Google Cloud Storage
As the code was migrated to Go Lang I decided to leave it for anyone who is interested in these technologies.
- Application.java starts the Guice dependency injector which initializes all components.
- StockNewsPipeline.java is a pipeline which reads news from Google Cloud Storage (via RawResourceReader.java), extracts the news content and updates an ElasticSearch index (via StockNewsWriter.java).
- GCS storage with Avro serialization and is handled by inheriting AbstractGcsRepository.java.