WithValue(parent, key, val) создаёт контекст, в котором Value(key) возвращает val. Цепочка ключей непрозрачна для пакета context - только тот слой, который положил ключ, должен его знать. Используют для request ID, трейсов, авторизации. Не класть тяжёлые данные и не злоупотреблять.
ctx = context.WithValue(ctx, key, "value")
v := ctx.Value(key)