Design a Design Export and Download Service

Last updated: April 5, 2025

Quick Overview

Design a service that exports Canva designs to multiple formats (PNG, PDF, MP4, GIF, SVG) with options for quality, size, and batch export, handling millions of exports daily.

Canva
System Design
Software Engineer
Canva
April 5, 2025
Software Engineer
System Design
System Design
Medium

8

4

2,890 solved


Design a service that exports Canva designs to multiple formats (PNG, PDF, MP4, GIF, SVG) with options for quality, size, and batch export, handling millions of exports daily.

Export is a critical user journey at Canva. Every design session eventually leads to a download or share. The service must handle diverse output formats, large batch exports, background removal and other premium processing, and deliver results quickly to maintain user satisfaction.

What the Interviewer Expects
  • Design the export pipeline for multiple output formats with format-specific optimizations
  • Handle batch exports (multi-page presentations, bulk social media posts)
  • Implement progress tracking and error recovery for long-running exports
  • Design for both synchronous (small exports) and asynchronous (large exports) workflows
Key Topics to Cover
Async job processing and queue management
Format-specific rendering optimization
Progress tracking with WebSockets
Priority queues and fair scheduling
How to Approach This
  1. Start by clarifying functional and non-functional requirements with the interviewer.
  2. Estimate the scale: QPS, storage, bandwidth. This drives your design decisions.
  3. Draw a high-level architecture first, then deep dive into 1-2 critical components.
  4. Discuss trade-offs explicitly (e.g., consistency vs availability, SQL vs NoSQL).
  5. Address failure scenarios, monitoring, and how the system handles 10x traffic spikes.
Possible Follow-up Questions
  • How would you prioritize exports for paying vs free users?
  • How would you handle an export that fails halfway through a 100-page document?
  • How would you implement video export from animated designs?
Sharpen Your Skills on Codemia

Practice similar problems with our interactive workspace, get AI feedback, and track your progress.

Practice System Design Problems
Sample Answer
Requirements
  • Functional Requirements:
    • Support exporting designs in PNG, PDF, MP4, GIF, and SVG formats.
    • Allow users to specify quality and size options for each format.
    • Enable batch export ...
Capacity Estimation

Assuming Canva has 10 million active users and each user performs an average of 5 exports per day:

  • Total Daily Exports: 10 million users * 5 exports = 50 million exports per day
  • **Peak Expor...

Submit Your Answer
Markdown supported

Related Questions