The idea is to clean up the public client API to be used to bootstrap BookKeeper
The first problem to solve is to define a clear way to create the client, in 4.4.0 there are several constructors and a builder class.
The presence of many constructors is a burden to carry on for all the future versions, it would be better to have only a single way to boostrap the client.
Another minor issue is that from the point of view of a developer which uses BookKeeper client API it is very difficult to decide which API use,
We should also remove from the public API direct dependencies on third party APIs, like Netty 3.x, and maybe from ZooKeeper too.
At the same time we must support the option for the client to reuse existing expensive shared resources (such as ZooKeeper client, or netty3 HashedWheelTimer)
This issue may:
- deprecate existing constructors and BookKeeper.Builder class
- introduce a more future-proof API