The following diagram shows different states of a bookie client connection in its lifecyle. Bookie client is using Netty for network transport.
A bookie client connection can be in DISCONNECTED state under below scenarios:
- Client creates a new connection but doesn't establish a connection to the bookie.
- Client gets disconnected from bookie or fails to establish a connection to the bookie.
A bookie client connection enters CONNECTING state when it attempts to establish a connection to the bookie. Connection will remain in this state until the connection attempt fails or succeeds. All the requests from this client will be queued up for processing until connection failed or established.
A bookie client connection enters CONNECTED state only after the successful connection establishment to the bookie. At that time, all queued client requests will be sent one by one to the bookie in FIFO.
A bookie client connection can be in CLOSED state only when clients explicitly asks to close the connection. All outstanding/queued up requests will be error out while the connection is being closed.