Although Spring Data provides reactive connectors for popular NoSQL databases, a reactive application sometimes needs to query a database that does not have reactive connectivity. Wrapping any blocking communication into a reactive API is possible. However, all blocking communication should happen on an appropriate thread pool. If not, we may block the event loop of the application and stop it entirely. Note, a small thread pool (with a bounded queue) is likely to be exhausted at some point. A full queue turns into blocking mode at some point and the whole point of making it non-blocking is gone. Such solutions are not as efficient as their entirely reactive counterparts. However, the approach with a dedicated thread pool for blocking requests is often acceptable in a reactive application.
Let's assume that we have to implement...