The brief
The brief
The brief
Someone on Stripe's engineering team needed an explainer animation for a technical blog post - visualising how their database infrastructure automatically recovers when things go wrong. The subject matter was dense, involving graph search algorithms, state machines and distributed database sharding. The ask was to create a visual that would help the concept land, without dumbing it down.
Someone on Stripe's engineering team needed an explainer animation for a technical blog post - visualising how their database infrastructure automatically recovers when things go wrong. The subject matter was dense, involving graph search algorithms, state machines and distributed database sharding. The ask was to create a visual that would help the concept land, without dumbing it down.
Someone on Stripe's engineering team needed an explainer animation for a technical blog post - visualising how their database infrastructure automatically recovers when things go wrong. The subject matter was dense, involving graph search algorithms, state machines and distributed database sharding. The ask was to create a visual that would help the concept land, without dumbing it down.
Create an animated visual to accompany the blog post that makes the system feel intuitive, without losing the complexity that makes it interesting.
Create an animated visual to accompany the blog post that makes the system feel intuitive, without losing the complexity that makes it interesting.
Create an animated visual to accompany the blog post that makes the system feel intuitive, without losing the complexity that makes it interesting.

THE ASK
THE ASK
THE ASK

The challenge
The challenge
The challenge
You can't design something you don't understand. Before anything was animated, my first job was getting familiar with the technical concepts well enough to know what actually needed to be shown and the best way to show it.
The second challenge was execution. The animation had a lot of moving parts (quite literally) - there were multiple recovery paths, each made up of the same four operations but in a different order (and that order mattered). Each operation held a different weight and therefore took a different amount of time, some sequences hit dead ends that violated the system's rules, and ultimately one path emerged as the fastest valid route. Getting this to feel clear rather than chaotic required careful thinking about layout, sequencing, and motion.
You can't design something you don't understand. Before anything was animated, my first job was getting familiar with the technical concepts well enough to know what actually needed to be shown and the best way to show it.
The second challenge was execution. The animation had a lot of moving parts (quite literally) - there were multiple recovery paths, each made up of the same four operations but in a different order (and that order mattered). Each operation held a different weight and therefore took a different amount of time, some sequences hit dead ends that violated the system's rules, and ultimately one path emerged as the fastest valid route. Getting this to feel clear rather than chaotic required careful thinking about layout, sequencing, and motion.
You can't design something you don't understand. Before anything was animated, my first job was getting familiar with the technical concepts well enough to know what actually needed to be shown and the best way to show it.
The second challenge was execution. The animation had a lot of moving parts (quite literally) - there were multiple recovery paths, each made up of the same four operations but in a different order (and that order mattered). Each operation held a different weight and therefore took a different amount of time, some sequences hit dead ends that violated the system's rules, and ultimately one path emerged as the fastest valid route. Getting this to feel clear rather than chaotic required careful thinking about layout, sequencing, and motion.
The process
The process
The process
The concept went through several iterations before landing. Early explorations felt too illustrative and overly simplified. Others were trying to capture too much information and lost sight of what actually needed to be understood. Finding the right level of abstraction was the real design challenge.
The final animation was built in Rive, working closely with an engineer on the Stripe team to collaboratively map out the logic and sequence. The animation moved through four distinct scenes: the initial degraded shard state, the system exploring possible recovery paths via breadth-first search, then evaluating all valid routes, and finally committing to the optimal (fastest/lowest-cost) route.
The concept went through several iterations before landing. Early explorations felt too illustrative and overly simplified. Others were trying to capture too much information and lost sight of what actually needed to be understood. Finding the right level of abstraction was the real design challenge.
The final animation was built in Rive, working closely with an engineer on the Stripe team to collaboratively map out the logic and sequence. The animation moved through four distinct scenes: the initial degraded shard state, the system exploring possible recovery paths via breadth-first search, then evaluating all valid routes, and finally committing to the optimal (fastest/lowest-cost) route.
The concept went through several iterations before landing. Early explorations felt too illustrative and overly simplified. Others were trying to capture too much information and lost sight of what actually needed to be understood. Finding the right level of abstraction was the real design challenge.
The final animation was built in Rive, working closely with an engineer on the Stripe team to collaboratively map out the logic and sequence. The animation moved through four distinct scenes: the initial degraded shard state, the system exploring possible recovery paths via breadth-first search, then evaluating all valid routes, and finally committing to the optimal (fastest/lowest-cost) route.
The outcome
The outcome
The outcome
A technical explainer animation published on Stripe's engineering blog, making a genuinely complex data infrastructure concept legible to a broader developer audience.
A technical explainer animation published on Stripe's engineering blog, making a genuinely complex data infrastructure concept legible to a broader developer audience.
A technical explainer animation published on Stripe's engineering blog, making a genuinely complex data infrastructure concept legible to a broader developer audience.


