Description
The latest KafkaRaftClient creates a new BufferSupplier every time it is needed. A buffer supplier is needed when reading from the log and when reading from a snapshot.
It would be good to investigate if there is a performance and memory usage advantage of sharing the buffer supplier between those use cases and every time the log or snapshot are read.
If BufferSupplier is share, it is very likely that the implementation will have to be thread-safe because we need support multiple Listeners and each Listener would be using a different thread.