Skip to content

Java-Kotlin-Python Cross-Platform Communication Suite

Notifications You must be signed in to change notification settings

seregamazur/grpc-sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

grpc-sample

Kubernetes

This has been created to illustrate the gRPC technology features alongside Protobuf in practise, including all 4 types of API:

We use blocking (non-async) stubs to make unary and server streaming requests. Async stub used for client streaming and bidirectional streaming. Used features:

Feature Java Client Java Server Kotlin Client Kotlin Server Python Client Python Server
SSL/TLS secured channel code code code code code code
GZIP Compression code No need to define manually, included by default code No need to define manually, included by default code No need to define manually, included by default
Call deadline code - code - code -
JWT Metadata code code code code code code
Cancel call - code - code - code
Retry config json - json - Manual circuit breaker + retries -

How to start

This project contains k8s deployments and services, so you can run this project easily on your env using minikube. Run k8s/kubectl-apply.sh -f to start servers alongside all clients (Java, Kotlin, Python) one after another. Another way to start directly via IntelliJ .run folders contain Run Configurations.

Demo

til