gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for...
Transcript of gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for...
![Page 1: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/1.jpg)
gRPC - Go MicroImre Nagi
![Page 2: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/2.jpg)
![Page 3: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/3.jpg)
![Page 4: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/4.jpg)
gRPC stands for gRPC Remote Procedure Call
A high performance, general purpose, feature rich RPC framework
HTTP/2.0 and mobile first
Open source!
![Page 5: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/5.jpg)
gRPC Over Rest
● Make streaming highly possible
● Machine Readable (not meant for browser)
● Lesser Boilerplate code (Code generator for 8 languages)
● Supports types and Validations: Unlike json , we can specify field types and add
validations for the same in the .proto file.
![Page 6: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/6.jpg)
![Page 7: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/7.jpg)
Go MicroGo Micro abstracts away the details of distributed systems. Here are the main features.
● Service Discovery - Automatic service registration and name resolution● Load Balancing - Client side load balancing built on discovery● Message Encoding - Dynamic encoding based on content-type with protobuf
and json support● Sync Streaming - RPC based communication with support for bidirectional
streaming● Async Messaging - Native PubSub messaging built in for event driven
architectures
![Page 8: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/8.jpg)
ConsulService Registry
Flight Service
Hotel Service
Train Service
Issuance Service
Search Service
Payment Service
User Service
RefundService
Simple MicroservicesDeployed in Multiple VMs
Async Message Passing
Async Message Passing
Async Message PassingAsync Message
Passing
*VM icon taken from GCP Icon
Go micro Kafka Plugins
![Page 9: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/9.jpg)
KubernetesService Registry
Flight Service
Hotel Service
Train Service
Issuance Service
Search Service
Payment Service
User Service
RefundService
Simple MicroservicesDeployed in Kubernetes
Async Message Passing
Async Message Passing
Async Message PassingAsync Message
Passing
*VM icon taken from GCP Icon
Go micro Kafka Plugins
![Page 10: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/10.jpg)
Kubernetes EngineService Registry
Flight Service
Hotel Service
Train Service
Issuance Service
Search Service
Payment Service
User Service
RefundService
Simple MicroservicesDeployed in Google Cloud
Async Message Passing
Async Message Passing
Async Message PassingAsync Message
Passing
*VM icon taken from GCP Icon
Google Cloud Pub/Sub
Go micro Pub/Sub Plugins
![Page 11: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/11.jpg)
![Page 12: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/12.jpg)
![Page 13: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/13.jpg)
![Page 14: gRPC - Go Micro...gRPC Over Rest Make streaming highly possible Machine Readable (not meant for browser) Lesser Boilerplate code (Code generator for 8 languages) Supports types and](https://reader033.fdocuments.net/reader033/viewer/2022042115/5e926cf77bddf5734b30ec1d/html5/thumbnails/14.jpg)