4 ms·
Modern Communication: Sockets (2014)
- htjglhktbrn 5y agoA real modern communication would be something like NATS (somewhat similar to ZeroMQ in concepts). It's quite amazing, even more frictionless than ZeroMQ.
- jdnier 5y agoDetails on NATS: https://nats.io/ https://nats.io/ https://github.com/nats-io https://github.com/nats-io
- djstein 5y agoHow is this different from RabbitMQ?
- tyingq 5y agoThere's a comparison page that includes RabbitMQ here: https://docs.nats.io/compare-nats https://docs.nats.io/compare-nats
- ssss11 5y agoWhat does NATS do that you think is amazing?
- htjglhktbrn 5y agoIt took me two days to learn it's specifics 3 years ago, and after that I never-ever had a problem with it. ItJustWorks(TM). In this sense it's a bit like Sqlite, which also JustWorks, as opposed to something like Postgres which requires more fiddling and maintenance. And functionally, it allowed me to create a service-bus topology where multiple processes can post messages on a set of subjects that can be subscribed by multiple other processes (think stock market quotes). This pattern is surprisingly difficult to implement in other message brokers.
- oaiey 5y agoEnlighten me on surprisingly difficult? Topics are a pretty well known feature. The key difference between nats and rabbitmq is that nats disconnects a consumer if it is not fast enough which is the key differentiator for nats.
- nine_k 5y ago...as long as you are not sensitive to delays. Not sound, not video, not games.
- ClumsyPilot 5y agoLow latency networking is so ignored, it's like a dark art. I tried to play with it at one point. I got stuck at encryption There is SSL support everywhere, but nothing seems to support DTLS? Do people even use it?
- yesenadam 5y agoThis is Chapter 6 of Unix system programming in OCaml (2014 version) by Xavier Leroy and Didier Rémy. https://ocaml.github.io/ocamlunix/index.html https://ocaml.github.io/ocamlunix/index.html
- waynesonfire 5y agopipes / sockets is the mechanism but protocols is the means. what are some protocols and their elements worth knowing? I suspect folks will point at protocols that already exist and work great. But, ideally, we wouldn't start there. But instead, unpack them from the very basic (simplex, synchronous) to the advanced. For example, we have lists and trees as basic data structures to postgres as more advanced for managing data. At some point, you reach for the RDBMS but developers get plenty of mileage out of simpler solutions. Throughout our careers we've bumped into many protocols, I've not been able to digest, appreciate, and study their constituents. When should one mock up a quick protocol vs invest or extend an existing one? Design protocols is fascinating to me. Compared to things that I design on a regular basis, software or APIs, it seems different.