Skip to content

[Feature] New Edge Cluster: Proxy server with cache. #4550

@winlinvip

Description

@winlinvip

Originally posted by winlinvip June 23, 2025
The new Origin Cluster, SRS origin server with proxy-go, can extend the number of streams it supports. The Edge Cluster is used to expand the number of viewers supported, but the Edge Cluster only supports the RTMP protocol. You cannot use Edge Cluster for WebRTC or SRT protocol.

Currently, the Edge Cluster is built within the SRS media server, like this:

Client ---RTMP--> SRS(Edge) ---> SRS(Origin)

This architecture has some problems:

  1. Complexity: Makes SRS complex and hard to maintain
  2. Protocol Limitations: Needs to support at least RTMP and WebRTC protocols within the same C++ codebase
  3. Scalability Issues: Adding new protocols (like SRT) requires significant C++ development
  4. Maintenance Overhead: All protocol handling is embedded in the main SRS server

I think a better approach would be a Relay Cluster, like this:

Client ----> Proxy(With Cache) ---> SRS(Origin) ---> Proxy(With Cache) ---> Client

If we add cache ability to the proxy server like proxy-go, then we get a new edge server, just like the current edge server based on SRS. Furthermore, we are able to add cache to each protocols, for example, proxy with RTMP cache is SRS edge server, proxy with RTC cache is WebRTC cluster.

The first task is to refine or even rewrite the current proxy server by AI, to define the protocols in documents, write comprehensive utests. This is to make sure the AI understand current proxy architecture and protocols, and prepare sufficient context for AI to understand the proxy server.

Metadata

Metadata

Assignees

No one assigned

    Labels

    EnglishNativeThis issue is conveyed exclusively in English.FeatureIt's a new feature.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions