Skip to main content

Redis

Gavrie Philipson · Software Architect · 2018–2025

Redis Enterprise is a mature product written mostly in C and Python, and I worked across most of its layers, from cluster internals to the build everyone shipped through. Most of what I argued for there was Rust inside it.

Some of that work is public. RedisJSON, the JSON data type for Redis, moved from C to Rust, and I wrote its first Rust commit and, later, the cut-over that replaced the C module in the shipping product. It sits on redismodule-rs, the open-source Rust framework for Redis modules, where I was one of the first contributors.

Inside the cluster software the same bet landed on the daemon that tracks which nodes are alive and which one holds the cluster’s configuration. Failover runs off it, so a wrong answer there is an outage on somebody’s production database. Rust’s async support was unfinished when I began. I ran on the nightly toolchain, moved the whole thing onto a different async runtime partway through when the ecosystem shifted under it, and the pieces I needed reached a stable release months after I had committed to them. It held in production. When the company later set out to rebuild its cluster management from scratch and asked me which language to build it in, that daemon was most of my case for Rust.

Working on something similar?

Let's talk
All companies