Skip to content

feat: ttheader stream protocol supports #163

@liyikun

Description

@liyikun

Is your feature request related to a problem? Please describe.

The current implementation of the TTHeader protocol only supports the PingPong API, which limits its applicability in scenarios requiring streaming capabilities. This limitation necessitates an enhancement to support more complex communication patterns, such as streaming RPC APIs, which are increasingly used in modern distributed systems.

Describe the solution you'd like

The proposed enhancement involves extending the TTHeader protocol to support Streaming RPC APIs, including Bidirectional Streaming, Server Streaming, and Client Streaming. This extension will align the protocol more closely with gRPC-like capabilities while maintaining simplicity by dedicating a connection to each stream. Key changes include:
Utilizing Frame Types (FRAME_TYPE) to distinguish between MetaFrame, HeaderFrame, DataFrame, and TrailerFrame.
Maintaining compatibility with existing GRPC projects by preserving GRPC-style Header/Trailer.
Proxy handling of Unknown Frame Types to allow future expansion.
Describe alternatives you've considered

Alternatives considered include sticking with the existing PingPong API and managing streaming capabilities at the application level. However, this approach was deemed inefficient and less scalable compared to supporting streaming at the protocol layer.

Additional Context
For detailed information, please refer to ByteDance's internal documentation to unders

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions