The Akka Team at Lightbend recently released Akka gRPC 0.8.0, a library for building streaming gRPC servers and clients on top of Akka Streams and Akka HTTP. We wanted to ask a few questions about this milestone, including the feature highlights, contributors, and plans for the future.
The most significant update is experimental support for gRPC Server Reflection which allows clients to discover the protocol of a gRPC server when it does not have access to its Protobuf specification. That is very useful for tools and debugging. The gRPC Server Reflection standard is in its early days, so we expect further changes.
David Montgomery contributed support for Custom Headers, which is very useful to provide detailed information when a gRPC request results in an error. Thanks David!
On the Akka team side, we improved client-side load balancing to make it possible for a client to distribute the load over multiple backend instances discovered through Akka Discovery. Finally, we spent time making the documentation more complete.
We made time to enable client-side load balancing not just with DNS, but with any service discovery mechanism supported by Akka Discovery. This is a useful feature in itself, and it also allowed us to simplify a lot of the reconnection and failure recovery logic.
We’ve seen gRPC being adopted by a huge part of our industry as its standardized schema-first approach shortens development cycles and makes polyglot service integration very reliable. Akka gRPC is now being used as the base for gRPC support in both the Play Framework and Lagom.
Our goal is to follow up on this 0.8.0 release with a “feature-complete” 1.0.0 release within a few months, at which point we will start maintaining binary compatibility in further updates.
Of course, contributors are always welcome. In fact, just in the last couple of days we've seen the Akka community pick up Akka gRPC 0.8.0 and identify some issues. We've now fixed those and released a patch release of Akka gRPC 0.8.1. We encourage everybody to try it out in their system, especially if they use other gRPC implementations alongside Akka gRPC.
The Akka team has prepared a series of short videos covering topics like Actors, Event Sourcing, CQRS, Cluster Sharding, and more. Check it out!