gRPC
各言語の実装があるが、仕様そのもののドキュメントはこれか?
channel
channel には state がある
Go 実装では ClientConn と呼ばれている
channel を複数の stream が並行して実行される
channel は複数の HTTP/2 connections の抽象化
HTTP2/ connections は stream 数に上限がある。C# 実装は、この上限を超えると connection を増やすオプションがある?
Go 実装のこれは、stream の上限設定なのか?
stream の上限は、実際にデータが流れているかは関係なく、connection に stream が維持されているか(?) でカウントされるのだと思うが、HTTP/2 をちゃんと理解していないのでわからない
Error Handling
Status struct として返される
Details を追加したい場合は withErrorDetails メソッドがある
Client
NewXXXClient に grpc.ClientConnInterface を渡せば呼び出せる
NewXXXClient は生成された grpc.pb.go ファイルに生成されている
Always re-use stubs and channels when possible.
Server
server には xxServiceServer interface が必要?
DialContext を呼び出せば OK?
clientConnection が帰る?
clientConn は gRPC の言葉では chanel のこと
chanel は connection の集まり
Authentication
TLS 使うタイプが標準
Timeout
Reflections
Server side connection handling