Skip to main content
Deepgram's Docs

Search documentation

Type to search this documentation.

On this pageOverview

Networking

When scaling a self-hosted Deepgram deployment for real-time streaming, the ingress and network layer in front of your API pods is a key part of your scaling strategy. In many deployments, the network layer — instead of Engine or GPU capacity — limits total concurrent connections. Plan and configure it deliberately alongside your pod scaling.

Why Networking Matters When Scaling Streaming

Section titled “Why Networking Matters When Scaling Streaming”

Streaming uses long-lived WebSocket connections, so the load balancer and network path must sustain a high number of concurrent, long-lived connections.

Adding Engine pods increases inference capacity, but concurrent-stream capacity will not scale with it if the network layer throttles connections first. In that case you may see WebSocket handshake timeouts or dropped connections while Engine and GPU utilization still look healthy.

Plan network capacity — load balancer settings, connection limits, and client-side network configuration — as part of scaling, not just pod count.

When validating that your network layer can scale with your deployment, review:

  • Ingress manifest and ALB annotations — or the AWS Load Balancer Controller config. Confirm connection limits, idle timeouts, and target group settings support the number of concurrent WebSocket connections you expect.
  • ALB CloudWatch metrics and access logs — especially connection counts, rejected connections, and errors during load. These surface whether the load balancer is the bottleneck before Engine pods saturate.
  • Client-side network configuration — any connection limits on the path to your deployment (proxy pools, NAT gateways, DNS TTLs) can cap total concurrent connections independently of Deepgram.
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu