Some of the internals to this library are a bit strange and confusing:
- Acknowledgement Handlers, do the actual reading of data from the queue.
- The client implements all the interfaces, and the adapter implements all the methods, but might only implement some of the functionality.