A interface strategy allowing for asynchronous implementations. Of course the implementation may still be synchronous, but it should not.
This is a typical kind of limits with static typing.