How I came to read the first half of Distributed Algorithms by Nancy Lynch


This blog is my story of how I came to read half of Distributed Algorithms by Nancy Lynch. This is a personal story, but also has ideas for how to learn and get unstuck.

The beginning

I first learned of the Distributed Algorithms book from watching the video Distributed Systems Theory for Practical Engineers. In this video, the speaker references 4 books:

  1. Distributed Algorithms by Nancy Lynch
  2. Reliable and Secure Distributed Programming by Christian Cachin
  3. Replication Theory and Practice by Bernadette Charon1.Bost
  4. Guide to Reliable Distributed Systems by Kenneth Birman

Lets refer to these books by number 1-4. The speaker calls book 1 “the bible”. Then says, “if you are going to read any book, read book 2. I went online and picked up the first two books.

Getting stuck

Next followed a series of attempts to read book 1 with each time resulting in the concepts not sinking in:

  • Try to read book 1
  • Try to read book 2 before book 1
  • Learn Erlang by reading Programming Erlang by Joe Armstrong
  • Create an Erlang project with concurrency named dta
  • Use Erlang gen_statem behavior
  • Learned about TLA+ by this video
  • Learn more about TLA+ by doing the video series
  • Try to read book 1 again and covert book models to TLA specs

Then came motivation and a good environment

None of the above attempts worked as far as enabling me to start reading book 1 and understand it. I did learn more concepts, but I was not quite there. Next came a series of things that pulled and pushed me in the right direction:

  • I had a soft tissue injury in my back and needed to take a break from mountain biking, so I had time to do other things
  • I started physical therapy for my back which made me optimistic
  • My manager told me “Aaron, you can code all day. What you need to do is learn the way things work”
  • I stopped drinking a beer or wine with dinner. Even this casual drinking was slowing me down and causing me to lose motivation
  • My youngest started school, so the mornings were now quiet
  • TLA+ motivated me, and I knew that I needed more backgound knowledge
  • I wanted to grow at work while working on my current projects

Then I could understand

September 4, 2023, which happened to be around the same time that my youngest started school, I started reading book 1. I took the time to understand the concepts and research what I didn’t know. I’ve been reading the book in the morning. I am a morning person, and it is a nice start to the day to get the new knowledge and consider things differently.

Now

It is now February 2, 2023, and I am on page 425 of 827 pages, so I am half way.

Conclusion

I think the difference was having enough reasons, enjoying what you are doing, and taking the time to learn.

What Next

I plan to continue reading book 1. I may take a break to write a TLA spec from a model in the book. I am thinking the Peterson2P algorithm, but I am going to wait and see. I don’t want to lose momentum.

Thank you to the authors

I am thankful to the authors for writing these books and sharing them with us. I have had three people in my career who I consider mentors. I learned a lot from them. When you read someone’s book, if it is the right book, it is like having a senior mentor teaching you.

Get fresh articles in your inbox

If you liked this article, you might want to subscribe. If you don't like what you get, unsubscribe with one click.