At the moment the hdfs::IoService is a simple wrapper over asio's io_service object. I'd like to make this smarter and have it do things like track which tasks are queued, validate that dependencies of tasks exist, and monitor ioservice throughput and contention. In order to get there we need to use have all components in the library to go through the hdfs::IoService rather than directly interacting with the asio::io_service. The only time the asio::io_service should be used is when calling things like asio::async_write that need an io_service&. HDFS-11884 will be able get rid of those remaining instances once this work is in place.