The best I can tell, when you use the Flux.fromIterable
as in that example, it will use the key-value API behind the scenes. This is different from the N1QL approach in a number of ways that include (but probably aren't limited to):
N1QL can be used to fetch document by other non-document key attributes (e.g. `SELECT * FROM foo WHERE name LIKE '%best wishes%'
N1QL queries will use the Couchbase query service and (usually) the index service and (most likely) the data service.
The key-value API will go directly the the data service.
I think using N1QL to fetch documents by ID may not need to use the index service (assuming you use the right syntax), but will still need to use the query service. So there is some overhead.
Key-value access is always the fastest way to retrieve data from Couchbase. However, depending on your document size, concurrency needs, other operations, and what overhead the Reactive client introduces (if any--I don't know), the difference in overall performance could be anywhere from 0 to way-way-way better.
My gut recommendation is to go with Reactive (and therefore key-value) for your use case of "get multiple document by id".