
Final set of questions, I hope. 1. If you write something like aedis::request req; std::tuple<std::optional<std::string>> res; req.push("LPOP", "something_not_a_list"); // will cause an error co_await conn.async_exec(req, adapt(res)); You seem to get an error code reported. The server does send an error response with diagnostics, but I haven't found a way to access that message. Is there any way? 2. I've modified cpp20_subscriber to add another task that sends commands with async_exec while reading subscription replies. If any of the commands issued with async_exec contain any errors (like the LPOP above), the program crashes with a "conn->cmds_ != 0" assertion. 3. I've seen other Redis (async) libraries implementing connection pools. Unless I'm mistaken, it seems likely that some of the user base will eventually require this feature. I see some overlap between the queuing system you have in place in connection and the responsibilities of the connection pool (I'd usually implement this kind of queueing at the connection pool level). What's your view of this? a. Is connection pooling planned in the future for Aedis? Or is it considered the responsibility of a higher-level component? b. In the latter case, would that component have to make use of the low-level API? Regards, Ruben.