This document discusses adding context support to the NATS client library. It begins with an overview of NATS and context in Go. It then describes enhancing the Subscription.NextMsg method to support context, avoiding blocking indefinitely. This allows building a RequestWithContext method for cancelling requests. The key steps are selecting on the subscription channel or context being done, and returning the context's error on cancellation. Learning from standard library patterns like validating contexts helps make the API clearer.