Expand YugabyteDB's Backup Solution to offer more recovery points while using less storage space.

Context

Database administrators (DBAs) often face a trade-off between minimizing storage costs and maximizing restorable points for data recovery. Full backups can be costly and time-consuming, especially when performed frequently. Without an efficient solution, maintaining frequent recovery points becomes unsustainable at scale.

To address this, the project introduces incremental backups - a backup technique that stores only the changes since the last backup, significantly reducing storage usage while enabling more frequent recovery points.

Target Audiences

πŸ‘©β€πŸ’» Developers

Limited database knowledge who need a simple, ready-to-use solution with minimal complexity.

πŸ‘¨β€πŸ« Database Administrators

Experts with specific expectations regarding database backup and restore functionalities.

My Role

1️⃣

Turn the feature requirements into an intuitive and engaging user experience.

2️⃣

Coordinate design reviews and build consensus with the team and company leadership.

3️⃣

Prototype and validate ideas quickly, pivoting or adjusting based on usability tests' feedback.

4️⃣

Collaborate with engineering and PM to design, build, and launch the feature.

STEP 1

Discover & Define

Through collaboration with my cross-functional partners, I identified 2 key components of this feature and clarified the objective for each:

Day 0 : Configurations

User should be able to easily find where to setup incremental backups or notice this offering even if they are not intentional looking. They should all be able to easily configure it as they desire.

Day 2 : Restore

With incremental backups, the number of backups users have will increase a lot. Making sure they can locate the needed backups, especially if it is an urgent restore, become even more important.

So….How might we…

enable users easily discover, understand , and confidently use incremental backups to restore data to their desirable points in time?

STEP 2

Ideate & Design

Object Models, User Stories, and Concept Mapping

To effectively translate the backend concepts into user interface designs and coherent user flows, I employed object models, concept mapping, and user stories.

πŸ“ Design Iterations

Serving as the blueprint for collaboration, I created mockups to align my PM and engineering on the specifics of my approach, ensuring technical feasibility while maintaining focus on user needs.

STEP 3

Validate

I built and tested a quick prototype with 2 solution architects and 1 product manager, aimed at validating key user flows.

The tests confirmed that users were able to successfully set up incremental backups and restore data to a specified timestamp. The sessions also surfaced minor usability issues, which I promptly addressed by refining the design. After making the adjustments, I shared the updated design with my team to ensure alignment and gather feedback.

Finding πŸ’š

Organizing the backup list by grouping incremental backups with their base backup ended up causing more confusion than providing clarity.

Solution πŸ’š

Present all restorable timestamps in a flat list, allowing users to drill down only if they want to view the backup chain, locate the base backup, or manage the chain.

Finding πŸ’š

Organizing the backup list by grouping incremental backups with their base backup ended up causing more confusion than providing clarity.

Solution πŸ’š

Present all restorable timestamps in a flat list, allowing users to drill down only if they want to view the backup chain, locate the base backup, or manage the chain.

Finding πŸ’š

Organizing the backup list by grouping incremental backups with their base backup ended up causing more confusion than providing clarity.

Solution πŸ’š

Present all restorable timestamps in a flat list, allowing users to drill down only if they want to view the backup chain, locate the base backup, or manage the chain.

Finding πŸ’œ

It’s helpful to show the restore summary throughout the restore flow to reinforce user confidence in the operation.

Solution πŸ’œ

Present all restorable timestamps in a flat list, allowing users to drill down only if they want to view the backup chain, locate the base backup, or manage the chain.

Finding πŸ’œ

It’s helpful to show the restore summary throughout the restore flow to reinforce user confidence in the operation.

Solution πŸ’œ

Present all restorable timestamps in a flat list, allowing users to drill down only if they want to view the backup chain, locate the base backup, or manage the chain.

Finding πŸ’œ

It’s helpful to show the restore summary throughout the restore flow to reinforce user confidence in the operation.

Solution πŸ’œ

Present all restorable timestamps in a flat list, allowing users to drill down only if they want to view the backup chain, locate the base backup, or manage the chain.

STEP 4

Hand Off

I collaborated closely with engineers, using key mockups and interactive prototypes to clearly communicate user flows and interaction patterns, ensuring smooth implementation.

The Final Design

Empty State

Create a Backup Policy

View Backup Policy and Backup List

View Individual Backup Details

Restore - Step 1

Restore - Step 2