Unary: один запрос - один ответ. Server stream: один запрос - поток ответов (stream Reply). Client stream: поток запросов - один ответ. Bidirectional: поток запросов и ответов. В Go сервер реализует интерфейс с методами (Send/Recv для stream); клиент вызывает метод и итерирует по потоку. Удобно для логов, телеметрии, чатов.
rpc StreamLogs (StreamRequest) returns (stream LogEntry);
rpc Chat (stream Message) returns (stream Message);