gRPC uses deadlines to manage timeouts. A deadline is a timestamp that denotes when a request should be completed, and it’s propagated across all the involved microservices. If the operation doesn’t complete within the specified time, gRPC aborts with DEADLINE_EXCEEDED status. Deadlines are set on per-call basis in client code before making an RPC. They’re absolute, not relative; thus, if the server’s clock is significantly skewed from the client’s, operations may timeout prematurely or unexpectedly delay. It’s crucial to choose reasonable deadlines as setting too short might cause valid requests to fail, while too long could exhaust resources due to hanging requests.