Skip to main content

Standing on the Shoulders of Giants

· 3 min read
Larry Maccherone
Founder Lumenize and Transformation.dev

Kenton Varda

I started playing with DOs shortly before Kenton Varda (aka @kenton) published his now famous Easy, Fast, Correct — Choose three post which introduced a high-consistency concurrency model via: 1) input gates, 2) output gates, and 3) storage cache. The good news was that this gave us a wonderful new way to build highly-scalable applications. The bad news was that it's such a radical departure from what we are used to doing, that it requires a huge mindset shift to take advantage of.

Over the next few years, I developed apps, evolved my own base class, and wrote about my favorite patterns.

Sunil Pai

Then, I learned about PartyKit which is built by Sunil Pai (aka @threepointone) because he started talking about it as socket.io for DOs with reconnecting WebSockets on the #durable-objects Discord channel. Before I had the chance to do more than just play with PartyKit, he went to work for Cloudflare and shipped the Agent base class as part of the agents npm package. I immediately started using Agent and routeAgentRequest and fell in love with its patterns. However, I lost trust in Agent when I hit a nasty security-relevant race-condition issue that went unfixed for months. Since Agent was just a wrapper for PartyServer, I temporarily switched to it while I started creating Lumenize by forking parts of PartyKit.

Brayden Wilmoth

I had been following Brayden Wilmoth (aka @Brayden)'s work before he came to work for Cloudflare. He is the creator of the Cloudflare D1 Data Explorer. He recently started working on the Actor base class, which is bringing DOs even closer to the Actor programming model. I'm a fan and am monitoring closely. My conversations with Brayden have been instrumental in shaping my understanding of how best to implement the Actor model on DOs even if Lumenize's take on that model is somewhat different.

Lambros Petrou

Along the way, one person has helped me understand DOs more than perhaps everyone else combined, Lambros Petrou (aka @lambrospetrou). He's the author of the single most useful page in Cloudflare's documentation, Lifecycle of a Durable Object and the wonderful durable-utils npm package, not to mention one of the most humble and patient people I know.

Other Community Members

Besides Lambros and Brayden, off the top of my head, the following people have made the community on the #durable-objects Discord channel a better place: @Jun, @Milan, @Hard@Work|R2, @João, @Leo, @1984FordLaser, @Marak, and I'm sure there are some others I'm missing. I've learned something from every one of them and I'm proud to be part of the community that they anchor.

Seeing Farther from Their Shoulders

I'm still learning and building, but I wouldn't have seen this far without standing on the shoulders of these giants.