Pekko gRPC Overview gRPC Pekko gRPC Project Information Project Status Why gRPC? gRPC vs REST gRPC vs SOAP gRPC vs Message Bus gRPC vs Pekko Remoting Getting started Apache Pekko gRPC Quickstart Video Introduction 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 Pekko HTTP Serving multiple services Running the server Stateful services gRPC-Web Server Reflection Providing Consuming Pekko HTTP interop Example: authentication/authorization Pekko HTTP authentication route Pekko gRPC route Securing the Pekko gRPC route Tying it all together Example: logging, error handling, and passing request context Implementation Method to log, handle, and recover each RPC Custom error mapping Tying it all together Results Future work Details Accessing request metadata Status codes Rich error model 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 Pekko Discovery for Endpoint Discovery Debug logging Details Client Lifecycle Shared Channels Load balancing Request Metadata Rich error model Build Tool Support sbt Configuring what to generate Configurations Generating server “power APIs” Passing parameters to the generators ScalaPB settings Using a local protoc command sbt-protoc settings Loading proto files from artifacts JDK 8 support Starting your Pekko 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 JDK 8 support Starting your Pekko gRPC server from gradle Play Framework support Maven Configuring what to generate Generating server “power APIs” Proto source directory Loading proto files from artifacts JDK 8 support Starting your Pekko gRPC server from Maven Binary compatibility Limitations New features Deprecations Internal and ApiMayChange API’s Upstream libraries API Design Methods without request or response Declare and enforce constraints for your request and response payloads with protoc-gen-validate Java support Scala support Deployment Serve gRPC over HTTPS Example: Kubernetes Troubleshooting Client Server Release Notes 1.0.1 Additions Dependency Upgrades 1.0.0 Bug Fixes Changes Additions Dependency Upgrades License Report Edit this page 1.0.0