RequestReader and RequestWriter abstractions