Hi.
I think that using actors for long processes like DB queries is not good idea. For these purposes it is better to use Future. But you can use actors for monitoring the end of the query (when a query is completed it sens message to an actor to change its state).
Read Don’t use Actors for concurrency to understand why you should do it this way.
To use CompletionStage, you do not need to set a timeout. What you can do is to run your DB query operation in a separate execution context (something you should do anyway unless your DB driver/lib is non-blocking already), and simply do not wait for the operation to return a result before you return the HTTP response.