Hi, I do believe that example from [1] where you see DatabaseClient is just a hint that whatever library you would use (db or REST based or whatever else) should be asynchronous or should actually not block. It does not have to be non blocking until it runs on its own thread pool that will return a feature or somewhat allowing you to register resultFuture.complete(...) on that future.
I actually write my own semi library that registers onto resultFuture.complete(...) from each library thread. [1] https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/stream/operators/asyncio.html -- Sent from: http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/