Shared Memory Consistency from Scratch Part 1: Causality | Dark Hacker News