rmichela / grpc-kata

Hello World service written in three langaues, Java, Go, and C#

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gRPC in Go, C#, and Java: A microservices code Kata

In this repo, we have the same Hello World service written in three langaues, Java, Go, and C#. This repo demonstrates how to use the gRPC framework from each language, and how gRPC facilitates cross-language interoperability.

What is gRPC

"gRPC is a modern open source high performance RPC framework" - grpc.io

gRPC diagram

Why gRPC?

  • Multiplexed RPC
  • Bi-directional streaming
  • Strong community ecosystem
  • Strong security - mTLS 🔐
  • First-class observability 👀 - metrics and tracing built in
  • Well defined separation of concerns - interceptors for middleware

Where does gRPC fit?

  • 🔥Works great behind the firewall
  • 📱Works great with mobile clients
  • 💻Works in the browser

Basic gRPC workflow

  1. Add library dependencies
  2. Write proto service contract
  3. Generate client and server stubs
  4. Implement server stub and start server
  5. Call service with client stub

Building

This repo is divided into three subdirectories, one for each language. There are also a series of git tags you can progress through to see each gRPC example progress one at a time. See the readme in each subdirectory for language specific details.

About

Hello World service written in three langaues, Java, Go, and C#

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C# 36.1%Language:Java 34.3%Language:Go 24.4%Language:Shell 3.3%Language:Makefile 1.9%