Configurable connection limits / circuit breakers for terminating gateways
- Dominant language
- Go
- Stars
- 30.1k
- Forks
- 4.6k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 39
Description
#### Feature Description
This is a request for terminating gateways that is essentially the same issue as described here for mesh-gateways: https://github.com/hashicorp/consul/issues/13589
Terminating gateways are configured with the default max connections/circuit breaker value of 1024 connections, and service default options cannot be applied to increase the limits. For high-request rate external services this requires us to operate a very large number of terminating gateway instances to work around this configuration limitation, in order to avoid the circuit breaker from "opening" and causing 503 http responses.
#### Use Case(s)
When implementing a terminating gateway for an external service we are currently required to vastly over-provision the number of terminating gateway instances to work around this default 1024 connection limit. It would be ideal if we could run just as many terminating gateway instances as are required based on CPU/memory utilization by allowing a very large volume of connections through each individual instance.
Contributor guide
Research direction
Start by reading the terminating-gateway implementation and the related mesh-gateway issue #13589 referenced in this report. Trace how the default 1024-connection circuit breaker is configured and whether service default options are considered. Done means terminating gateways can configure higher connection limits without requiring excessive gateway instances, with coverage for the new behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- infrastructure, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100