Context Cancellation in Go

A request that has already timed out should not keep consuming database connections and downstream capacity. Learn how to pass context through handlers, clients, and workers without turning every function into noise.
Cancellation across layers
Pass the request context into database queries, HTTP requests, and worker boundaries. A child operation should finish when its parent deadline expires, and cleanup should be deterministic. In tests, cancel the context before the dependency returns and assert that the service stops doing work.
A useful rule
Context carries deadlines, cancellation, and request-scoped values. It should not become a bag for optional business arguments. Keeping that boundary clear makes cancellation behavior easy to review.