aboutsummaryrefslogtreecommitdiff
path: root/documentation/research/distributed_programming.md
blob: ef4003e18c93b6766d8cea677124ba0061471295 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# 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. [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. ["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. [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)