Connection handles most of the cases. The reason connection pool
exists has little to do with the opening/closing of connections, it is
because operations on the connection are synchronous (eg req/resp). ES
connections are async + bidirectional which removes the need of a
connection pool.
As for writing a "framework" its < 10 lines of code?! not sure how you
would consider this a framework. Set the retry count to 0 and on
connection closed try to make a new one. You get fail fast behaviour
(first failure results in exceptions to callers, you can control back
off etc, and your callers can determine their retry strategies)