I'm trying to implement a Flatbuffer gRPC server and was original confused by the streaming: "server" definition. After much digging and frustration because of the lack of documentation on the topic I did manage to figure out that there are a few streaming types that can be declared:
rpc_service MonsterStorage {
Store(Monster):Stat (streaming: "none");
Retrieve(Stat):Monster (streaming: "server", idempotent);
GetMaxHitPoint(Monster):Stat (streaming: "client");
GetMinMaxHitPoints(Monster):Stat (streaming: "bidi");
}
Now I'm even more curious. It seems that bidi was the one that I needed, but what do none, server and client mean? What does idempotent do to the stream?
Is this actually documented somewhere and I'm just terrible at searching? lol.