A service is an asynchronous function from a request to an optional response.
A service is an asynchronous function from a request to an optional response. It wraps
a function A => Task[Option[B]]
with useful methods to deal with both the asynchronicity
and the optionality.
the request type
the response type