Hints for Computer System Design - статья за авторством Butler Lampson, который был награжден ACM Turing Award. В этой статье он суммировал свои мысли по дизайну систем
Big Ball of Mud - статья с набором паттернов/антипаттернов о проектировании систем: big ball of mud, throwaway code, piecemeal growth, keep it working, sweeping it under the rug, reconstruction. Статью интересно читать и узнавать реальные системы, с которыми часто сталкиваются инженеры в реальности
The Google File System - классическая статья про распределенную файловую систему Google, на смену которой пришел Google Colossus, про который тоже можно почитать по ссылке. А сам GFS (Google File System) послужил прообразом HDSF (Hadoop Distributed File System)
On Designing and Deploying Internet-Scale Services - статья от Microsoft с чеклистом о том, как дизайнить и оценивать масштабные системы (напоминает подход с чеклистом от 12 factor apps)
Kafka: a Distributed Messaging System for Log Processing - white paper по Kafka, которая стала незаменимой системой для обработки сообщений. Отдельно Will отмечает следующий момент “In particular, Kafka’s partitions do a phenomenal job of forcing application designers to make explicit decisions about trading off performance for predictable message ordering”
Paxos Made Simple - статья Лампорта про алгоритм консенсуса Paxos, рассказанная так, чтобы быть проще для понимания (но он все равно оказался сложным и потом появился Raft)
SWIM: Scalable Weakly-Consistent Infection-Style Process Group Membership Protocol - статья про “weakly-consistent knowledge of process group membership information at all participating processes”, что отличает этот подход от того, что обычно практикуется для алгоритмов консенсуса на случай partition. Этот подход используется в софте HashiCorp и в Uber’s Ringpop