I try to understand protobuf and gRPC and how I can use both. Could you help me understand the following:
- Considering the OSI model what is where, for example is Protobuf at layer 4?
- Thinking through a message transfer how is the "flow", what is gRPC doing what protobuf misses?
- If the sender uses protobuf can the server use gRPC or does gRPC add something which only a gRPC client can deliver?
- If gRPC can make synchronous and asynchronous communication possible, Protobuf is just for the marshalling and therefore does not have anything to do with state - true or false?
- Can I use gRPC in a frontend application communicating instead of REST or GraphQL?
I already know - or assume I do - that:
- Binary protocol for data interchange
- Designed by Google
- Uses generated "Struct" like description at client and server to un-/-marshall message
- Uses protobuf (v3)
- Again from Google
- Framework for RPC calls
- Makes use of HTTP/2 as well
- Synchronous and asynchronous communication possible
I again assume its an easy question for someone already using the technology. I still would thank you to be patient with me and help me out. I would also be really thankful for any network deep dive of the technologies.