WithTimeout(ctx, d) - то же, что WithDeadline(ctx, time.Now().Add(d)). Дедлайн - абсолютное время; таймаут - относительный интервал. Оба отменяют контекст по истечении времени (или при отмене родителя).
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)