The primary aim of developing this project was to extensively utilize gRPC technology and deeply explore the advantages it offers. Here are the key tasks I accomplished towards this goal:
- .proto File: I created a
.proto
file where I defined the fundamental functions of my product service. In this file, I worked on the data structures and service definitions provided by gRPC.
- Product Information Query: I implemented a simple and effective request-response model using the Unary RPC model. This showcases one of the basic use cases of gRPC.
- Product List Streaming: Demonstrating how the server can continuously stream data using the Server streaming RPC model. This is an example of gRPC's streaming capabilities.
- Stream from Client Side: I applied the client streaming RPC model, where the client sends multiple pieces of data, and the server processes them and returns a single response. This illustrates one of the more complex usage examples of gRPC.
- Bidirectional Data Flow: I brought to life the bidirectional streaming model where both the client and server can send and receive data simultaneously. This is one of the most flexible communication models of gRPC.
- gRPC Client: I developed a client application that interacts with various gRPC services on the server side. This application demonstrates how gRPC can be practically used.
The fundamental objective of this project was to practically examine gRPC technology and experience the various communication models this modern RPC framework provides. My project offered a unique opportunity to explore the robust and flexible nature of gRPC.