Franalagamups
fragile narrow laggy asynchronous mismatched untrusted pipes
fragile narrow laggy asynchronous mismatched untrusted pipes
This term comes from a May 2020 thoughtdump by Tristan Hume, in which the problems of modern day hacking are blamed (mostly) on our flakey - no wait, our flanalagamu - distributed network. (And yet, our current network is still too centralized!)
But I find that this is true. Literal computers hate exceptions. And exposure to the network is like connecting to a nozzle spewing failure.
From the article:
- Fragile: The network connection or the other end can have hardware failures, these have different implications but both manifest as just a timeout. Everything needs to handle failure.
- Narrow: Bandwidth is limited so we need to carefully design protocols to only send what they need.
- Laggy: Network latency is noticeable so we need to carefully minimize round-trips.
- Asynchronous: Especially with >2 input sources (UIs count) all sorts of races and edge cases can happen and need to be thought about and handled.
- Mismatched: It’s often not possible to upgrade all systems atomically, so you need to handle different ends speaking different protocol versions.
- Untrusted: If you don’t want everything to be taken down by one malfunction you need to defend against invalid inputs and being overwhelmed. Sometimes you also need to defend against actual attackers.
- Pipes: Everything gets packed as bytes so you need to be able to (de)serialize your data.
It’s tough to know how to deal with all of these simultaneously - the mismatched bullet has me troubled.