Open slinkydeveloper opened 1 year ago
Requirements for the pool (ordered by priority):
Non-requirements:
Different network deployments to support:
Now that https://github.com/restatedev/restate/pull/237 is in place, we could implement a simple pooling strategy by sharing the hyper::Client
among invocation tasks. This is still problematic with vanilla kubernetes pods (only L4 load balancing), and can still block when the max-streams is reached (as no new connections are opened when quota is reached), but the suspension timeout guarantees that after a while stream quotas are released for invocations waiting for very long time on completions.
I've opened #293 with the simple pooling strategy that shares the hyper::Client
. Let's keep this issue open though, as I think #293 is only a temporary solution but not the long term strategy.
The goal of this issue is to implement connection pooling within the invoker. Probably depends on https://github.com/restatedev/restate/issues/96