https://www.javacodegeeks.com/2015/12/composing-multiple-async-results-via-applicative-builder-java-8.html
Composing Multiple Async Results via an Applicative Builder in Java 8