- Inspect the request, response, and error when determining to retry - Return a future if retry is desired - This future allows an impl to delay a retry - The future yields a new `Policy`, allowing state to be changed for later retries.