Skip to content

Consideration: Deprecate gRPC integration #3699

@xerial

Description

@xerial

Deprecate gRPC integration. Airframe gRPC integration was introduced to facilitate efficient server-client communication. However, I'm considering dropping gRPC support for the following reasons:

  • gRPC single/async performance is now on par with the airframe-netty backend. There's no significant difference in performance, with both handling about 10,000 to 60,000 RPC calls per second.
  • grpc-web hasn't been updated recently, making it less appealing as a web-server backend for Scala.js client communication. Next release grpc/grpc-web#1466
  • The expected use cases for server/client/bi-directional streaming (e.g., chat, video streaming, online gaming) aren't always our primary focus. https://yousufsohail.medium.com/bidirectional-streaming-in-grpc-dcf8ae814a2f
    Moreover, most gRPC ecosystems assume the use of ProtocolBuffers, making streaming JSON/MsgPack data over gRPC less practical for our needs.

While the maintenance overhead for airframe-grpc has been relatively low due to its isolated nature, there are still some factors to consider before making a final decision on deprecation:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    In Design

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions