Akka gRPC

gRPC new tab is a transport mechanism for request/response and streaming use cases. It can run in almost any environment with bindings to many programming languages. It takes a schema-first approach, where your protocol is declared in a Protobuf service descriptor new tab. From the service descriptor the source code for the messages, client and server stubs are generated.

It has several advantages:

  • Schema-first design favors well-defined and decoupled service interfaces over brittle ad-hoc solutions.

  • The Protobuf-based wire protocol is efficient, well-known, and allows compatible schema evolution.

  • It is based on HTTP/2 which allows multiplexing several data streams over a single connection.

  • Streaming requests and responses are first class.

  • There are tools available for many languages allowing seamless interoperability between clients and services written in different languages.

That makes it well-suited for:

  • Connections between internal services

  • Connecting to external services that expose a gRPC API (even ones written in other languages)

  • Serving data to web or mobile front-ends

Akka gRPC new tab is a gRPC library for the Akka ecosystem. It has support for Maven, gradle and sbt. The gRPC servers and clients use Akka Streams, Scala Future and Java CompletionStage in the user facing API.