hashicorp / hashicorp/consul

Configurable connection limits / circuit breakers for terminating gateways

Open
#20,512 1 comment 5 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.