The current Java client has a lot of initialization overhead. Some of the things we could do to trim the fat are:
1. Parallelize the connection creation inside a connection pool, i.e. make this for loop parallel.
2. Do not create a bootstrap for every connection. A single bootstrap could be reused.
3. Remove SASL Handler from the pipeline after negotiation is complete for a connection.
4. Do not initialize SASL Handler if not required.
As part of this task, we should profile the start-up time and identify other places where we could optimize the start-up time.