Eventually, I decided that thinking was not getting me very far and it was time to try building.
Caches aren't architecture, they're just optimization.
Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
Sockets are the X windows of IO interfaces.
Languages that try to disallow idiocy become themselves idiotic.
There's no such thing as a simple cache bug.