What they don't teach you about sockets

https://macoy.me/blog/programming/Sockets

A few thoughts after reading this:

  1. you really need to go end-to-end if you want reliability
  2. the Go APIs and language are really nice for network programming – expected as it is a “Internet” language.
  3. NATS takes care of a lot of the messy end-to-end issues with network programming (reconnects, buffering packets when disconnected, queuing, etc.) Even if you don’t need a message bus, the network abstractions are useful.