# Distributed systems

TODO

## Articles

* [Distributed consensus made simple (for real this time!)](https://decentralizedthoughts.github.io/2021-09-30-distributed-consensus-made-simple-for-real-this-time/)
* [Python for Distributed Systems](https://www.babbling.fish/elt-cookbook-python/)
* [RAMP up your distributed transactions](https://bartoszsypytkowski.com/ramp/)
* [Three Clocks are Better than One](https://www.tigerbeetle.com/post/three-clocks-are-better-than-one)
* [How To Design A Reliable Distributed Timer](https://0x709394.me/How-To%20Design%20A%20Reliable%20Distributed%20Timer)
* [Distributed Tracing — we’ve been doing it wrong](https://copyconstruct.medium.com/distributed-tracing-weve-been-doing-it-wrong-39fc92a857df)
* [Summer Blog Backlog: Distributed Systems](http://www.oilshell.org/blog/2021/07/blog-backlog-2.html)
* [Getting To Know Logical Clocks By Implementing Them](https://brunocalza.me/getting-to-know-logical-clocks-by-implementing-them/)
* [Make your cluster SWIM](https://bartoszsypytkowski.com/make-your-cluster-swim/)
* [A robust distributed locking algorithm based on Google Cloud Storage](https://www.joyfulbikeshedding.com/blog/2021-05-19-robust-distributed-locking-algorithm-based-on-google-cloud-storage.html)
* [The Problem of Distributed Consensus](https://writings.stephenwolfram.com/2021/05/the-problem-of-distributed-consensus/)
* [Achieving reliable dual writes in distributed systems](https://engineering.razorpay.com/achieving-reliable-dual-writes-in-distributed-systems-cb9ff3b9bfc1)
* [How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh](https://martinfowler.com/articles/data-monolith-to-mesh.html)
* [CASPaxos: Replicated State Machines without logs](https://arxiv.org/abs/1802.07000)
* [Understanding Connections & Pools](https://sudhir.io/understanding-connections-pools/)
* [A Byzantine failure in the real world](https://blog.cloudflare.com/a-byzantine-failure-in-the-real-world/)
* [Страх и ненависть в распределённых системах](https://habr.com/ru/post/322876/)
* [Что такое распределенные системы? Краткое введение](https://bestprogrammer.ru/izuchenie/chto-takoe-raspredelennye-sistemy-kratkoe-vvedenie)
* [This is why distributed systems are useful (and I am building one)](https://abbyssoul.github.io/engineering/2020/06/06/whys-of-distributed-system.html)
* [Изоляция рабочих нагрузок с использованием произвольного сегментирования](https://aws.amazon.com/ru/builders-library/workload-isolation-using-shuffle-sharding/)
* [Keeping CALM: When Distributed Consistency Is Easy](https://cacm.acm.org/magazines/2020/9/246941-keeping-calm/fulltext)
* [Performance Under Load](https://netflixtechblog.medium.com/performance-under-load-3e6fa9a60581)
* [Systems design for advanced beginners](https://robertheaton.com/2020/04/06/systems-design-for-advanced-beginners/)
* [Сложности, связанные с распределенными системами](https://aws.amazon.com/ru/builders-library/challenges-with-distributed-systems/)
* [How to get started with infrastructure and distributed systems](https://codecapsule.com/2016/01/03/how-to-get-started-with-infrastructure-and-distributed-systems/)
* [Learning to build distributed systems](https://brooker.co.za/blog/2019/04/03/learning.html)
* [How To Build A Modern Distributed Compute Platform](https://andygrove.io/how_to_build_a_modern_distributed_compute_platform/)
* [Fear and Loathing in Lock-Free Programming](https://medium.com/@tylerneely/fear-and-loathing-in-lock-free-programming-7158b1cdd50c)
* [You Don’t Need $1MM for a Distributed System](https://medium.com/@dan.ellis/you-dont-need-1mm-for-a-distributed-system-70901d4741e1)

## Books

* [Hints and Principles for Computer System Design](https://arxiv.org/abs/2011.02455)
* [Metastable Failures in Distributed Systems](https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s11-bronson.pdf)
* [Making reliable distributed systems in the presence software errors](https://erlang.org/download/armstrong_thesis_2003.pdf)
* [Debugging Distributed Systems](https://dl.acm.org/doi/pdf/10.1145/2927299.2940294)

## Courses / Videos

* [CSE138 (Distributed Systems) lectures, Spring 2021](https://youtube.com/playlist?list=PLNPUF5QyWU8PydLG2cIJrCvnn5I_exhYx)
* [Tess Rinearson - All Together Now: An Introduction to Distributed Consensus](https://youtu.be/vMz3q8Mm1uY)
* [Complexities of Capacity Management for Distributed Services](https://youtu.be/pOo0oKNM9I8)
* [System Design](https://youtube.com/playlist?list=PL564gOx0bCLouDCUMtmj6hMEu1JS7QYEr)
* [Correctness proofs of distributed systems with Isabelle/HOL](https://youtu.be/Uav5jWHNghY)
* ["Consistency without consensus in production systems" by Peter Bourgon](https://youtu.be/em9zLzM8O7c)
* [Distributed Systems in One Lesson by Tim Berglund](https://youtu.be/Y6Ev8GIlbxc)

## Links

* [A Distributed Systems Reading List](https://dancres.github.io/Pages/)
* [Testing Distributed Systems](https://asatarin.github.io/testing-distributed-systems/)
* [Resources for learning distributed systems](https://lobste.rs/s/vuevqu/resources_for_learning_distributed)
* [Jepsen](https://github.com/jepsen-io/jepsen)
* [An Introduction to Distributed Systems](https://github.com/aphyr/distsys-class)
* [Awesome Chaos Engineering](https://github.com/dastergon/awesome-chaos-engineering)
* [Awesome distributed systems](https://github.com/theanalyst/awesome-distributed-systems)
* [Awesome distributed transactions](https://github.com/rystsov/awesome-distributed-transactions)
* [Distributed Consensus Reading List](https://github.com/heidihoward/distributed-consensus-reading-list)
* [DistSys Reading Group](https://www.youtube.com/channel/UCMKIroHVXvMQRIBhENE6RhQ/videos)
