Akka gRPC Overview gRPC Akka gRPC Project Information Project Status Why gRPC? gRPC vs REST gRPC vs SOAP gRPC vs Message Bus gRPC vs Akka Remoting Getting started Akka gRPC Quickstart Protobuf Service Descriptors Messages Services Code generation options Providing Services (Server) Walkthrough Setting up Dependencies Writing a service definition Generating interfaces and stubs Implementing the service Serving the service with Akka HTTP Serving multiple services Running the server Stateful services gRPC-Web Server Reflection Providing Consuming Akka HTTP interop Example: authentication/authorization Akka HTTP authentication route Akka gRPC route Securing the Akka gRPC route Tying it all together Future work Details Accessing request metadata Status codes Kubernetes LoadBalancer Service NGINX Ingress GCE Ingress Google Cloud Endpoints Consuming Services (Client) Walkthrough Setting up Dependencies Generating Service Stubs Writing a Client Program Configuration By Code By Configuration Using Akka Discovery for Endpoint Discovery Debug logging Details Client Lifecycle Load balancing Request Metadata Build Tool Support sbt Configuring what to generate Configurations Generating server “power APIs” Passing parameters to the generators ScalaPB settings sbt-protoc settings Loading proto files from artifacts JDK 8 support Starting your Akka gRPC server from sbt Gradle Configuring plugin Installation Available plugin options Generating server “power APIs” Protoc version Proto source directory Loading proto files from artifacts Starting your Akka gRPC server from gradle JDK 8 support Play Framework support Maven Configuring what to generate Generating server “power APIs” Proto source directory Loading proto files from artifacts Starting your Akka gRPC server from Maven Binary compatibility Limitations New features Deprecations Internal and ApiMayChange API’s Upstream libraries API Design Methods without request or response Deployment Serve gRPC over HTTPS Example: Kubernetes Troubleshooting Client Server