1. 2

    I also wrote a summary on how Orleans differs from using Basho’s Riak Core (built on Erlang) for building fault tolerant, highly-available, distributed applications. It provides a line-by-line comparison of the paper.

    https://christophermeiklejohn.com/papers/2015/05/03/orleans.html

    1. 2

      I found that once I switched from a computer to a notebook for note-taking and general research, I became a lot more productive. I find having the computer in front of me makes me more distracted and less focused, and I love the ability I have to just stick my notebook in my pocket with a pen in my jacket at all times of the day. I bring it to bars, cafes, train rides, the park, etc.

      I used to be a big fan of the Ogami Stone Notebooks [1], the paper is wonderful to write on with a ballpoint pen and is waterproof. However, once I realized that the paper decomposes at around the five year mark, I switched back to a Moleskine.

      The Moleskine [2] has worked well for me – I buy the exact same size and same one every time, I can buy them almost anywhere – abroad, in an airport, in basically every single city I may visit for both school and work. I like the consistency, because I can keep them all together and date them and have a record of whatever I was working on at a given moment related to my research.

      [1] http://www.jennibick.com/collections/ogami-stone-notebooks/products/ogami-stone-notebook-professional-hardcover

      [2] https://store.moleskine.com/usa/notebooks/notebooks/classic-notebook/p1?lang=en-us

      1. 2

        It’s an interesting idea, but in my opinion, it reaches a little in service of bolstering the AP story. The observable local real world isn’t eventually consistent, and that’s where we spend all of our time and form all of our intuitions. Even when we see a far off event happening on TV, we perceive it as being perfectly contemporaneous and admit zero possibility that the experience will be altered retroactively to include updated distant information. So I feel like the argument is unconvincing, and I still feel like AP is a great idea waiting for an actual use case.

        Personal anecdotal example of correspondingly low value: having dealt with global leaderboards myself for a certain (in)famous, well-trafficked multiplayer shooter, I was super interested to read an article on using AP & CRDTs with leaderboards (https://christophermeiklejohn.com/lasp/erlang/2015/10/17/leaderboard.html). But the benefit of AP was still a mystery to me after reading it; we were able to keep the leaderboards for even this game, which experiences significantly more traffic than all but possibly 2 mobile games (and maybe all), in a single centralized sql instance with a few read slaves. Certain very high update rate stats went into a nosql store. The insert, select and update statements for the sql and nosql stores were the predictable one-liners. Data didn’t have to be specially structured. All of our availability problems had nothing to do with network partitioning between members of the cluster over the course of several years. The architecture and problem-solving around the architecture were so standard I could get junior developers up to speed in hours. Comparing and contrasting that with LASP, even as an erlang fan, …

        1. 2

          The observable local real world isn’t eventually consistent, and that’s where we spend all of our time and form all of our intuitions.

          I don’t think this is a true statement. Knowledge is a function of perception, and is not immediate unless we’re the agent. Reasoning about truth external to us is bound by the laws of math and physics. For example, if a star goes super nova, I will eventually receive that update–but someone closer to the event will undoubtedly see it first. We can compute, based off relative distance, when that event occurred but it might take some time to form consensus.

          (EDIT: grammar)

          1. 2

            I agree that it’s only a true statement insofar as I included the word “local”. I drop a hammer; the hammer is on the ground simultaneously for everyone in the room. There’s no possibility that a larger quorum of people are going to barge in and declare that the hammer did not in fact land on the floor, because it was replaced by a screwdriver before it could, and so now we should all amend our experiential beliefs to account for this new factual evidence. I’ll agree with you as far as cosmological events over interplanetary distances, but the market for those databases may not be very big at the moment.

          2. 2

            But the benefit of AP was still a mystery to me after reading it; we were able to keep the leaderboards for even this game, which experiences significantly more traffic than all but possibly 2 mobile games (and maybe all), in a single centralized sql instance with a few read slaves.

            The benefit of the CRDT based leaderboard, using Lasp, is that it allows peer-to-peer synchronization without coordinating with a central MySQL instance, where the guarantee is convergence by each member in the system without the risks of message ordering introducing nondeterminism.

            1. 1

              Doh, I wasn’t clear, my apologies. I understood the paper, and Lasp looks pretty nifty. What I didn’t understand was the motivation or the payoff, given the triviality of the problem space, the low cost-to-implement and cost-to-operate of the “traditional” solution, and the added complexity of the Lasp-based solution. What factors, if any, got a lot better and made the cost-benefit analysis worth it to do it this way? Or was this pure thought experiment?