well-typed / grapesy

Native Haskell gRPC client and server based on `http2`
Other
31 stars 4 forks source link

Flow control #118

Open edsko opened 2 months ago

edsko commented 2 months ago

Main reference https://grpc.io/docs/guides/flow-control/ .

Note that HTTP2 flow control is implemented by the http2 package, with grapesy is based on.

Additional references:

Currently the only flow control in grapesy is implicit: we currently use a one-place buffer for incoming and outgoing messages, providing backpressure in both directions. It might at least make sense to generalize this, for example for better latency masking. (Some discussion of buffering in https://medium.com/engineering-at-palo-alto-networks/dataflow-and-grpc-using-at-scale-9612303dfe0b.)

Potentially related: #117 .