Christopher Meiklejohn
christophermeiklejohn.com · Personal blog · on HN since 2013
Christopher Meiklejohn is a distributed systems researcher writing about CRDTs, programming models, Erlang, and reading lists for the field.
What HN saysCommenters recommend his readings in distributed systems as a good intro and source of papers, and point to his CRDT and Riak writing.
51HN people shared it
20linked it in comments
86stories submitted
1.3Kstory points
3 months agolast shared
2013people per year2026
Most-shared posts
- 1Readings in distributed systems11 people · 146 points · first shared 2013 · 14 comments on HN
- 2Orleans vs. Erlang and Riak Core5 people · 16 points · first shared 2015 · discussion on HN
- 3Software Engineering Is Becoming Civil Engineering4 people · 12 points · first shared 2026 · discussion on HN
- 4Readings in conflict-free replicated data types3 people · 29 points · first shared 2014 · 6 comments on HN
- 5Programming Models for Distributed Computing: Remote Procedure Call3 people · 11 points · first shared 2016 · discussion on HN
- 6Distinguishing Lasp from Bloom^L: Programming System vs. Programming Model3 people · 6 points · first shared 2018 · discussion on HN
- 7Stateful Experiments on AWS Lambda2 people · 172 points · first shared 2018 · 14 comments on HN
- 8High-performance, exactly-once, failure-oblivious distributed programming (2018)2 people · 134 points · first shared 2018 · 26 comments on HN
- 9Applied Monotonicity: A Brief History of CRDTs in Riak2 people · 118 points · first shared 2019 · 16 comments on HN
- 10What Is Chaos Engineering?2 people · 32 points · first shared 2022 · 4 comments on HN
- 11Verified Vector Clocks: An Experience Report, Part 22 people · 29 points · first shared 2013 · 6 comments on HN
- 12Verified Vector Clocks: An Experience Report, Part 12 people · 4 points · first shared 2013 · discussion on HN
- 13Filibuster: Part 2, Technique: Service-Level Fault Injection Testing2 people · 3 points · first shared 2021 · discussion on HN
- 14Hermes2 people · 3 points · first shared 2016 · discussion on HN
- 15A broken auto-live poller, and what perceived urgency does to Claude Code2 people · 3 points · first shared 2026 · discussion on HN
What HN people wrote when they linked it
mfrw · 2024-02-08
I have also found some stuff here that might be worth a read: https://christophermeiklejohn.com/distributed/systems/2013/07/12/readi…
eternalban · 2022-02-08
I'll also admit to having difficulty understanding how is all this distinct from non-CRDT replication mechanisms. Great mission and work by DeuxFluers team btw. Bonne chance!
Edit: Blogs on Riak's use of CRDTs:
http://christophermeiklejohn.com/erlang/lasp/2019/03/08/monotonicity.h…
https://web.archive.org/web/20170801114916/http://docs.basho.com/riak/…
https://naveennegi.medium.com/rendezvous-with-riak-crdts-part-1-e94cfc…
Ixiaus · 2016-07-18
I would checkout Christopher Meiklejohn's website, he's a researching working on this stuff and doing some cool OSS work: https://christophermeiklejohn.com/
makmanalp · 2015-12-15
I've been reading this, and I think it's a great intro to the subject that isn't inscrutable and doesn't go into excessive detail. I also like: http://christophermeiklejohn.com/distributed/systems/2013/07/12/readin… as a source for more in depth readings in specific subjects. Many of these are seminal papers
jzelinskie · 2014-12-04
Some more great resources:
This is a list of many of the most influential white papers:
http://christophermeiklejohn.com/distributed/systems/2013/07/12/readin…
This is an associated podcast:
http://thinkdistributed.io/
This is mixu's book on distributed systems:
http://book.mixu.net/distsys/single-page.html
This is the MIT reading list:
http://courses.csail.mit.edu/6.852/05/papers/
cmeiklejohn · 2014-07-22
For what it's worth, I'm putting up a more permanent resource with information, links to papers, etc., on my blog:
http://christophermeiklejohn.com/crdt/2014/07/22/readings-in-crdts.htm…
zeckalpha · 2022-03-20
He has plenty of industrial experience, not a pure academic https://christophermeiklejohn.com/meiklejohn-cv.pdf
macintux · 2018-08-17
I was fortunate enough to work at Basho, where CRDTs were part of nearly every technical discussion about how to progress Riak.
One of my former co-workers, Chris Meiklejohn, continues to push forward with CRDTs via Lasp[0]. He has a good list of reading materials[1] that it doesn't look like he's maintained recently but should still be useful.
Guess I'll plug my meta-list of distributed systems reading lists[3] (definitely currently unmaintained) while I'm here.
[0]: https://github.com/lasp-lang/lasp
[1]: http://christophermeiklejohn.com/distributed/systems/2013/07/12/readin…
[2]: https://gist.github.com/macintux/6227368
noelwelsh · 2018-03-05
Very briefly:
Process calculus, such as the pi-calculus and join calculus. Prototype implementation in Scala here: https://github.com/Chymyst/chymyst-core
Lasp and Bloom: http://christophermeiklejohn.com/lasp/2018/03/02/lasp-vs-bloom.html
profzing · 2017-07-09
Have a look at this :
http://christophermeiklejohn.com/distributed/systems/2013/07/12/readin…
di4na · 2016-12-01
https://christophermeiklejohn.com/pl/2016/04/12/rpc.html
https://www.youtube.com/watch?v=aDWZyYHj2XM
Christopher is far better than i will ever be at explaining it. In general, RPC have some fundamental problems, among other, they need you to ship the full context.
0xmohit · 2016-07-17
Comparison of Orleans with Erlang and Riak Core:
http://christophermeiklejohn.com/papers/2015/05/03/orleans.html
hendzen · 2016-06-12
This is very interesting. It seems like a much more user-friendly version of TLA+. Wonder what Lamport thinks about it :)
I think the next logical feature would be to have Runway compile a model-checked specification to an actual C++/Java/go/python implementation, using something like Thrift or CapnProto RPC codegen. There has been some work on doing similar spec->implementation compilation from Coq to erlang [0] but the author hit a lot of obstacles.
[0] - http://christophermeiklejohn.com/coq/erlang/2013/11/19/verified-vector…
woodcut · 2016-04-11
I hadn't really given F# serious consideration, i know it's based off of OCaml but looking at it now i'm not particularly enamoured by the idea of managing threads, or doing async programming. Yes it does have an actor model but it looks limited to just a message box.
I think Microsoft Orleans is the most interesting functional language based on .Net http://christophermeiklejohn.com/papers/2015/05/03/orleans.html
rdtsc · 2015-10-13
A comparison with Erlang/OTP:
http://christophermeiklejohn.com/papers/2015/05/03/orleans.html
sytelus · 2015-06-07
You can usually guess quality of programming language from the first page of its description. For LASP it clearly sucks. No simple example, are you kidding me? I finally dug out example at below link and all I can say is this is pretty ugly language. So many _ and curly brackets that it feels dizzy. None of the sample code is even remotely intuitively readable to make a guess what's going on.
http://christophermeiklejohn.com/lasp/erlang/2015/01/10/ad-counter-ors…
memracom · 2014-01-09
I've come to the conclusion that "MVC" is the problem with web client apps. Now that there are several choices for doing MVVM using a functional reactive programming style, we really should move beyond the simplistic MVC concept.
Here is one pointer to more info http://christophermeiklejohn.com/frp/javascript/clojurescript/2013/06/… and down near the bottom he has a link to the HN discussion of his article.
gtani · 2013-09-18
don't overlook the link in Robinson's upper right page
http://henryr.github.io/distributed-systems-readings/
also:
http://christophermeiklejohn.com/distributed/systems/2013/07/12/readin…
iamwil · 2024-01-25
Ah, I'll put it in as a note in the beginning. You can see a more basic introduction in a previous post I wrote:
https://interjectedfuture.com/trade-offs-between-different-crdts/
https://news.ycombinator.com/item?id=38916647
Here's some introductory material I found helpful:
- [An interactive intro to CRDTs](https://jakelazaroff.com/words/an-interactive-intro-to-crdts/)
- [An introduction to state-based CRDTs](https://www.bartoszsypytkowski.com/the-state-of-a-state-based-crdts/)
- [CRDTs for non-academics](https://www.youtube.com/watch?v=vBU70EjwGfw)
- [CRDT: The Hard Parts](https://www.youtube.com/watch?v=x7drE24geUw)
- [Readings in CRDTs](https://christophermeiklejohn.com/crdt/2014/07/22/readings-in-crdts.ht…
- [crdt.tech](https://crdt.tech)
roller · 2018-05-11
I assume Lineage Driven Fault Injection stuff [1] has some overlap with Eve's ability to tell you "Why is this blank?": The datalog model allows you to find the logical dependencies of results.
Some other bloom related links:
- Anna KVS[2] showed up recently on hacker news[3] and morning paper[4]
- Lasp lang is in the same space[5], Christopher Meiklejohn has a comparison with bloom[6]
[1]: https://disorderlylabs.github.io/#
[2]: https://databeta.wordpress.com/2018/03/09/anna-kvs/
[3]: https://news.ycombinator.com/item?id=16551072
[4]: https://blog.acolyer.org/2018/03/27/anna-a-kvs-for-any-scale/
[5]: https://lasp-lang.readme.io/
[6]: http://christophermeiklejohn.com/lasp/2018/03/02/lasp-vs-bloom.html