# Microservices 1. [The seven deceptions of microservices](https://scottrogowski.com/the-seven-deceptions-of-microservices.html) # Synchronization 1. [Braid: Synchronization for HTTP](https://braid.news/) 1. [The Braid Protocol: Synchronization for HTTP](https://tools.ietf.org/html/draft-toomim-braid-00) # Reference 1. [No more DSLs: Implement and deploy a distributed system with a single program](http://catern.com/integration.html) 1. [Ambients: Peer-to-Peer Programs and Data](https://ipfs.io/ipfs/QmPhPJE55GvqSz7Pwvkc8n9dbKmqGw6tUGTE1MgfNQvzsf) 1. [Bastion: Highly-available Distributed Fault-tolerant Runtime](https://bastion.rs/) 1. [DDD and Messaging Architectures: An overview of my different series on patterns in distributed systems.](http://verraes.net/2019/05/ddd-msg-arch/) 1. https://replicated.cc/ 1. http://www.the-paper-trail.org/post/2014-08-09-distributed-systems-theory-for-the-distributed-systems-engineer/ 1. https://courses.engr.illinois.edu/cs525/sp2018/index.html 1. https://arxiv.org/abs/1701.07615 1. http://proto.actor/ 1. https://blog.acolyer.org/2015/10/15/ironfleet-proving-practical-distributed-systems-correc/ 1. http://pythonsweetness.tumblr.com/post/165366346547/mitogen-an-infrastructure-code-baseline-that 1. https://github.com/heathermiller/dist-prog-book 1. https://lasp-lang.readme.io/ 1. https://speakerdeck.com/cmeiklejohn/practical-evaluation-of-the-lasp-programming-model-at-scale 1. http://bloom-lang.net/ 1. https://www.oreilly.com/ideas/scaling-a-startup-with-a-21st-century-language 1. https://github.com/grailbio/reflow 1. https://github.com/reactors-io/reactors 1. http://funcool.github.io/urania/latest/ 1. https://raft.github.io/ 1. https://github.com/ashwin153/caustic 1. http://prl.ccs.neu.edu/blog/2017/10/22/monotonicity-types-towards-a-type-system-for-eventual-consistency/ 1. http://www.swirlds.com/ 1. [Whip: Higher-Order Contracts for Modern Services](https://people.seas.harvard.edu/~chong/pubs/icfp17-whip.pdf &&& https://www.youtube.com/watch?v=phHrSC6pkXU) 1. https://channel9.msdn.com/Shows/On-NET/Orleans-onNET 1. [A Meta-EDSL for Distributed Web Applications](https://www.youtube.com/watch?v=Xzv6CfyXUdM) 1. https://en.wikipedia.org/wiki/Petriscript 1. [Fallacies of Distributed Computing Explained](http://www.rgoarchitects.com/Files/fallacies.pdf) 1. https://abhishek-tiwari.com/friends-dont-let-friends-build-data-pipelines/ 1. [Differential Synchronization](https://neil.fraser.name/writing/sync/) 1. https://medium.com/@mycoralhealth/why-blockchains-dont-suck-and-the-perils-of-distributed-databases-1a522cc7cfe1 1. [The Remote Monad](http://www.ittc.ku.edu/research/thesis/documents/justin_dawson_thesis.pdf) 1. https://blog.acolyer.org/2017/08/17/on-the-design-of-distributed-programming-models/ 1. https://twitter.com/ifesdjeen/status/1024775959961128961 1. https://sekniqi.com/blog/a-distributed-systems-primer-for-non-experts.html 1. [numpywren: serverless linear algebra](https://arxiv.org/abs/1810.09679) 1. https://hackernoon.com/a-thorough-introduction-to-distributed-systems-3b91562c9b3c 1. ["Towards Language Support for Distributed Systems" by Heather Miller](https://www.youtube.com/watch?v=IeBbiQZYmuY) 1. http://jepsen.io/ 1. [Think Local: Reducing Coordination and Improving Performance when Designing around Distributed State](https://vimeo.com/304106598) 1. [Introducing AMBROSIA: a new platform for reliable distributed applications without all the hassle](https://cloudblogs.microsoft.com/opensource/2018/12/13/introducing-ambrosia-new-platform-distributed-applications/) 1. https://distributedobjectprotocol.org/ 1. https://medium.com/bitfinex/introducing-svc-js-a-framework-for-grenache-7119f2d7769e 1. http://dbmsmusings.blogspot.com/2019/01/its-time-to-move-on-from-two-phase.html # Rate limiting 1. https://blog.ably.io/how-adopting-a-distributed-rate-limiting-helps-scale-your-platform-1afdf3944b5a # Programming language 1. [Choral: a choreographic programming language](https://www.choral-lang.org/) 1. ["Unison: a new distributed programming language" by Paul Chiusano](https://www.youtube.com/watch?v=gCWtkvDQ2ZI) 1. http://radicle.xyz/ 1. [Lambda World 2018 - Introduction to the Unison programming language - Rúnar Bjarnason](https://www.youtube.com/watch?v=rp_Eild1aq8) 1. https://www.infoq.com/presentations/language-design-process # Parallel commit 1. [Parallel Commits: An Atomic Commit Protocol For Globally Distributed Transactions](https://www.cockroachlabs.com/blog/parallel-commits) # Two-phase commit 1. https://shekhargulati.com/2018/09/05/two-phase-commit-protocol/ # Linearizability 1. https://ristret.com/s/uqin9q/mild_generalization_linearizability 1. https://en.wikipedia.org/wiki/Vector_clock # Exemplar 1. http://meshbird.com/ # Logical clock 1. [Interval Tree Clocks](https://ferd.ca/interval-tree-clocks.html) 1. [Version Vectors are not Vector Clocks](https://haslab.wordpress.com/2011/07/08/version-vectors-are-not-vector-clocks/) 1. [Distributed Systems: Physical, Logical, and Vector Clocks](https://levelup.gitconnected.com/distributed-systems-physical-logical-and-vector-clocks-7ca989f5f780) 1. [The Bloom Clock](https://arxiv.org/pdf/1905.13064.pdf) 1. [Why Logical Clocks are Easy: Sometimes all you need is the right language.](https://queue.acm.org/detail.cfm?id=2917756) # Consensus protocol 1. https://medium.com/s/story/lets-take-a-crack-at-understanding-distributed-consensus-dad23d0dc95 1. [Spectrum: A Framework for Adapting Consensus Protocols](https://arxiv.org/abs/1902.05873) # Locality 1. [Think Local: Reducing Coordination and Improving Performance when Designing around Distributed State](https://vimeo.com/304106598) # Distributed transaction 1. [Life beyond Distributed Transactions: an Apostate’s Opinion](http://adrianmarriott.net/logosroot/papers/LifeBeyondTxns.pdf)