TLA+ Conference and StrangeLoop 2022

Last week I traveled to the Strange Loop conference. I chaired the TLA+ conference held as part of pre-conf events. I will write about that below.

Strange Loop was my first developer's conference. I have mixed feelings. I will write about that as well.

Travel to the conference was eventless via Delta connection through Atlanta. Atlanta to Sait Louis gave me one hour on the clock because I moved from Eastern to Central time zone. I had gotten exit row seats, so I had ample legroom. I watched TopGun in the first flight (which was good), and watched half of Jurassic World Dominion (which was very lame, I thought it was a parody).

I arrived around 3pmish and dropped my backpack (I travel light) at my hotel room. I stayed at Drury Inn, which is right next to the conference hotel, Union Inn Station Hotel. The hotel was decent, they had decent hot breakfast. I walked to the Gateway Arch, and wondered around till the TLA+ Conference dinner. It was very hot at 95 F, but the temperature dropped quickly to 60s in two days.

We had a full day of exciting talks for the TLA+ conference. Check these out! The missing slides and videos will trickle in.

While I chaired the conference, a lot of the heavy lifting was done by Marcus Kuppe, long term maintainer of the TLA+ toolkit and big time TLA+ contributor. Follow Marcus's Twitter account for TLA+ updates. We are blessed to have Marcus taking care of TLA+ community.

We had around 40 people attending the TLA+ conference. The day before, Hillel gave a hands-on TLA+ workshop to 30 people. Hillel also joined the TLA+ conference, and I was delighted to meet him in person and spend as much time I could with him over dinner on Friday and lunch on Saturday. Hillel is a force of nature, he is full of energy. He distributed skillfully-made chocolates to attendees, and juggled for the kids people brought with them. Hillel's writing on TLA+ got the tool and methodology on the radar of many developers. His book on TLA+ and workshops are first-rate. Hire him for teaching a TLA+ workshop for your team.

Nikolaj Bjørner, co-creator of Z3, and partner researcher at Microsoft Research gave an overview talk about systems verification efforts. Z3 is a popular open source Satisfiability modulo theories (SMT) solver. SMT is a decision problem for logical formulas expressed in classical first-order logic with equality (propositional logic+ quantifiers + relations). You can think of Z3 as formalizing constraint programming. Z3 has been very influential and has picked up a lot of momentum with the improvements in hardware, parallel computing resources, and improvements in SMT as well. His slides are accessible here.

Nathan Fairhurst (Principal Engineer at Nike) gave a very engaging talk about the use of TLA+ at Nike. The talk had the best visuals I have ever seen. Of course, this is coming from Nike, what do you expect? Nathan had some nice gems in his talk. Here are some:

  • TLA+ gives you high quality rapid feedback that would take years to accumulate otherwise. Things like race conditions are impossible to get fast feedback.
  • You can be agile and use formal methods. We love TLA+ and it works great with Agile.
  • We now know what we are building will work. We go straight to the core of the problem. "Fifteen times better."
  • You don't always need formal methods. You don't always need a parachute either. In software, lot of people try to sew parachutes mid-air.
  • When we deployed, we had 5 known bugs in the system. Even though, we have never seen them, we knew they were there via TLA+ modeling. Deployment was a strategic decision. Every bug eventually happened, but we knew what we knew exactly what was wrong and how to fix it.
  • It is about value. We write TLA+ to serve our customers. Maximize work not done. Paper is cheaper than film.


Jack Vanlightly and Markus Kuppe gave their talk on using TLA+ toolkit to obtain statistical properties of the TLA+ models of systems. Wouldn't it be great if you could also get statistical hyper properties (abort rates, completion rounds, etc.) about your distributed system while you are safety-checking it with TLA+? This would allow you to optimize and fine-tune the protocol, all the while ensuring its safety-liveness properties via model checking. Using TLCGet and by adding a new "generate" mode to TLC, this is now achievable. Markus did two cool live demos (Knuth-Yao dice simulation with coin-toss protocol and Dijkstra-Safra termination detection protocol). We all gasped a loud WOW when we saw the real-time statistics about the protocol being model-check displayed live on screen. Jack talked about how he put this to real use when analyzing SWIM, RabbitMQ, and Kafka group configuration and balancing protocols. This is a great extension to TLA+. Here are the slides. These updates are in the nightly build branch. Markus set this up on my laptop after the talk. I think he and Jack will write about how to set this up and use this soon.


Finn Hackett gave a talk on Pluscal to Go compiler. We also had talks about the Apalache Symbolic Model Checker for TLA+.

Martin Kleppmann also attended the TLA+ conference. It was nice chatting with him about distributed systems during lunch and afterwards.

On Thursday night, Strange Loop took us to the STL city museum. It is a weird place. 100 year old 10-story warehouse is carved to add climbing staircases, tunnels, and all sort of oddities. It was fun.


Well, about the Strange Loop conference... This was my first developers conference. This was big with more than 1000 people attending. Before pandemic, the conference had seen double or triple of this number. That is too big and too general/broad for my taste. Here is the schedule. John Romero's keynote about "The Early Days of Id Software" was great!  There were 3-4 other talks I enjoyed a lot.

I left the conference just before the closing to catch my flight back. In the closing remark, it had been announced that the next Strange Loop will be the last in the series.

Comments

Popular posts from this blog

Hints for Distributed Systems Design

Learning about distributed systems: where to start?

Making database systems usable

Looming Liability Machines (LLMs)

Foundational distributed systems papers

Advice to the young

Linearizability: A Correctness Condition for Concurrent Objects

Understanding the Performance Implications of Storage-Disaggregated Databases

Scalable OLTP in the Cloud: What’s the BIG DEAL?

Designing Data Intensive Applications (DDIA) Book