Echo is a test double for API interactions that learns from the real API. In its simplest use case, it extends Net::HTTP and tracks every HTTP call to a registered domain. If it hasn't seen that call, it stores both the request and the response. On subsequent calls it returns the stored response. Explicit scenario start/end markers are also supported for more complex multiple-step interactions.