Deadline — абсолютное время, до которого вызов должен завершиться. Клиент устанавливает: ctx, cancel := context.WithTimeout(ctx, 5*time.Second). Deadline передаётся серверу в metadata и каскадно пробрасывается при вложенных вызовах. Если время вышло — клиент получает DeadlineExceeded, сервер видит ctx.Done(). Всегда ставь deadline — без него зависший сервер заблокирует клиента навсегда. gRPC рекомендует deadline на каждый вызов. В Go — context.WithTimeout или context.WithDeadline. Deadline уменьшается по цепочке сервисов автоматически.