Timeouts are a simple yet very powerful tool for handling failures in calling services that are into an error condition. For example, if we are calling a service, that is facing a performance issue, our timeout checks at the calling service end will save us from the pain of waiting infinitely for a response. This is in sync with the fail fast approach, but this time we are implementing the solution at the client side or at the calling service end.