Back Original

“Carol’s Causal Conundrum” is out!

The cover of “Carol's Causal Conundrum” by Ayush Manocha and Lindsey Kuper

The newest zine from my research group, “Carol’s Causal Conundrum”, is out today! You can read it online, or print your own free copies to read offline!

This zine is an introduction to causally ordered message delivery, a fundamental abstraction for distributed programming. It’s the result of a six-month collaboration between my student collaborator, Ayush Manocha, and me. In the zine, we talk about what exactly causally ordered message delivery is, what problem it solves, and a few ways to implement it: two classic ways, and one new way!

I’ve been making research zines collaboratively with undergrads since 2024; “Communicating Chorrectly with a Choreography”, a zine about choreographic programming, was our first one. After the success of that first zine project, I began looking for a student who wanted to work on a follow-up. Ayush, who had just taken my undergrad programming languages course, was keen to help, and we began tossing around ideas.

My grad students Yan Tong and Nathan Liittschwager and I had been working on a new protocol for causal message delivery, based on an idea that I had a while back. We called the protocol Cykas, which stands for “Can you keep a secret?”, and Ayush liked the idea of collaborating on a zine to explain the Cykas protocol!

We quickly realized, though, that to explain the Cykas protocol, we’d have to back up and explain what causal message delivery even was, and say something about the classic approaches to implementing it. So our zine became a bit less about Cykas and a bit more about causal delivery generally. We went through lots of iterations on the writing; one of our goals was to explain concepts precisely without needing to introduce a lot of jargon, and detailed feedback from Julia Evans and Marie LeBlanc Flanagan helped a lot with that.

We had to leave out a lot of things from the zine – for example, we mention logical clocks in passing, but don’t explain how any particular logical clock algorithm works. Even so, this zine ended up almost twice as long as the choreographic programming zine!

Because so many of the ideas we’re discussing are quite old, I ended up going back to primary sources many times, sometimes learning new things myself in the process. There’s a lot of enlightenment to be found in dusty old papers from the last century (but you probably already knew I felt that way).

Working with Ayush on this zine has been an absolute pleasure. Ayush did all the illustrations, and we collaborated on the text. We sweated every detail – I think we went through eleven drafts. Ayush was also new to page layout software, but learned the ins and outs of it just for this project!

Happily, just as we were wrapping this project up, the Cykas paper was accepted for presentation at the PaPoC workshop at EuroSys this year, and I’ll be presenting it there in just a couple weeks! I’m planning to use a lot of the art from the zine in my talk, and I’ll hand out printed zines, too.

Working on zines these last couple of years has been very rewarding. I’ve handed out lots of copies of our choreographic programming zine at conferences, and I’ve gotten emails from people around the world who have printed out copies and handed them out or left them for folks to find, anywhere they think the zine might find an audience. I hope that happens with this new zine, too! Zines are meant to be printed and shared physically. If you like our zine, I would love for you to print one and leave it someplace where someone else will pick it up.