What problem does it solve?
Go developers often struggle with correctly creating, propagating, and canceling contexts across services. This Skill provides clear patterns and practices for using context.Context in Go, covering cancellation, timeouts, deadlines, values, and cross-service tracing.
Core Features & Use Cases
- Context creation & propagation: proper initialization, passing ctx through call chains, and avoiding nil contexts.
- Cancellation & deadlines: using WithCancel, WithTimeout, WithDeadline, and handling ctx.Done().
- Context values & tracing: safe key types and extracting trace/user IDs across services.
- HTTP and database integration: use of context-aware APIs like http.NewRequestWithContext and QueryContext/ExecContext.
- Use Case: building a resilient, cancellable HTTP handler that calls a downstream service while respecting client disconnects.
Quick Start
Instantiate a request-scoped context from r.Context(), propagate it to HTTP client calls and database queries, and cancel it when the client disconnects.