/grpc-production-go

A gRPC production-ready library

Primary LanguageGoApache License 2.0Apache-2.0

GRPC for production Build Status Quality Gate Status Maintainability Rating

Read more about the project here!

This project abstracts away the details of the GRPC server and client configuration.

Here are the main features:

  • Health check service — We use the grpc_health_probe utility which allows you to query health of gRPC services that expose service their status through the gRPC Health Checking Protocol.
  • Shutdown hook — The library registers a shutdown hook with the GRPC server to ensure that the application is closed gracefully on exit
  • Keep alive params — Keepalives are an optional feature but it can be handy to signal how the persistence of the open connection should be kept for further messages
  • In memory communication between client and server, helpful to write unit and integration tests. When writing integration tests we should avoid having the networking element from your test as it is slow to assign and release ports.
  • Server and client builder for uniform object creation
  • Added ability to recover the system from a service panic
  • Added ability to add multiple interceptors in order
  • Added client tracing metadata propagation
  • Handy Server interceptors(Authentication, request cancelled, execution time, panic recovery)
  • Handy Client interceptors(Timeout logs, Tracing, propagate headers)
  • Secure connection with self signed certificate
  • Client TLS with insecure connection support

Examples

Please refer to the /examples folder