Networking Protocols
Networking protocols includes low-level internet protocols, such as writing to raw TCP streams, as well as web service protocols, such as JSON-RPC or RESTful APIs.
For communicating with back-end services, I tend to use gRPC and protocol buffers to define my message schema and route my requests. I am currently using Tonic for my building and running my gRPC service and client libraries. I've also used an IPC socket mounted on shared volumes for service communication.
Ever/IP is a mesh networking IPV6 application layer gateway, useful for distributed systems communication behind different networks. It uses the noise protocol framework, similar to WireGuard VPN tunneling, for securely establishing connections between mesh nodes.
I've used WebSockets for streaming broadcasted messages to connect clients, such as web browsers.
gRPC |................................
REST APIs |..................................
WebSockets |...............................
IPC Socket |...............................
JSON-RPC |...............................
TCP/IP |........................
UDP/IP |........................
Ever/IP |........................
WireGuard |..........
-------------|-----------------------------------------
Proficiency 0 25 50 75 100