CodeX
Published in

CodeX

NEW BOOK

Learn to Build Production-Grade Microservices with gRPC and Go

An introductory excerpt from gRPC Microservices in Go by Hüseyin Babal

Benefits of gRPC Microservices

Performance

Code Generation & Interoperability

Fault Tolerance

Security

Streaming

REST vs. gRPC

When to Use gRPC

curl -X "POST" \
- H "Content-Type: application/json" \
-d '{"name": "dev-cluster"}' \ http://localhost:8080/twirp/github.com/huseyinbabal/microservices-proto/cluster/Create
  • Developers who don’t know Go or Microservices: can take advantage of starting with introductory chapters about Go, Microservice, gRPC, and learn production-grade techniques for gRPC Go Microservices. For the readers who already know Microservice Architecture, can refresh their knowledge with the resources described in Go which can be easily adapted to any other language they use currently.
  • Engineering Managers: can improve developer productivity within their teams by adding the best practices described here into their playbooks. Applying practices will introduce good visibility over the entire product that will help to onboard new employees to the team easily.
  • Software Architects: there are lots of handy examples and architectural designs which are potential references to their decisions for new products or features.
  • Completed project at the end of this book
  • Code examples to better understand a specific topic and how it works
  • Automation examples especially with Github Actions to reduce repetitive operations
  • Preparing artifacts for deployment
  • Security best practices

Production-grade Use-cases

Figure 1. Architecture diagram of an e-commerce product built with Go Microservices on top of Kubernetes including CI/CD flow and Observability

Summary

  • gRPC performs well in inter-service communications because it uses binary serialization for the data and transfers it through the HTTP/2 protocol.
  • gRPC allows you to do client streaming, server streaming, and bi-directional streaming that allows you to send multiple requests or receive multiple responses in parallel.
  • Stable Client–Server interaction in gRPC Microservices are very easy to accomplish because of automatic code generation.
  • REST is very popular especially due to its wider browser support, but you can still use a gRPC web proxy (e.g. https://github.com/grpc/grpc-web) for REST-to-gRPC conversion.
  • Go is one of the best languages for cloud-native applications, like microservices in kubernetes, due to its high portability.
  • Using HTTP/2 over SSL/TLS end-to-end encryption connection in gRPC eliminates most of the security concerns for a Microservice
  • By the end of the book you will know all of this inside-out!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Manning Publications

Follow Manning Publications on Medium for free content and exclusive discounts.