@socketman2016 from the last paragraph of the last response what @brett19 is recommending is
Note that, to your point, it is possible to infer the status of a connection through the Error’s thrown from operations. That is to say that if you perform an operation and receive an error back indicating that the connection is closed but you are certain that the issue is transient, you can simply instantiate a new Cluster object. In the near future this reconnection will no longer be necessary, as the SDK will internally perform the reconnect automatically, and will additionally provide additional context to the error that is throw from the operation, indicating the reason that the connection was lost.
@brett19 any further suggestions / recommendations ?