Semua soal system design

Design Pastebin

Store and serve arbitrary text blobs at scale with expiry, and decide what belongs in blob storage versus a database.

Prompt latihan

  1. Problem Statement, Functional Requirements, and Scale Assumptions

    Tentukan tujuan produk Pastebin, aksi inti pengguna (pembuatan paste, pengambilan, masa berlaku), non-goal yang eksplisit (kolaborasi real-time, version control), dan asumsi skala awal sebelum mengusulkan komponen.

  2. Non-Functional Requirements

    Pilih sasaran ketersediaan, latensi baca, durabilitas, biaya penyimpanan, pencegahan penyalahgunaan, dan observability yang sesuai untuk Pastebin. Tentukan jalur mana yang kritis terhadap latensi dan mana yang bisa mentoleransi keterlambatan.

  3. Quantitative Analysis

    Perkirakan QPS pembuatan paste, QPS pengambilan paste, ukuran paste rata-rata dan p99, pertumbuhan total penyimpanan per tahun, ukuran working set cache, dan kebutuhan bandwidth dari asumsi yang telah ditetapkan.

  4. API Design

    Definisikan operasi API untuk membuat paste, mengambil konten paste berdasarkan ID, menghapus paste, dan secara opsional menampilkan daftar paste untuk pengguna terautentikasi. Sertakan bentuk request dan response, penanganan content-type, pendekatan pembangkitan ID paste, aturan validasi, semantik masa berlaku, dan kasus error.

  5. High-Level Design

    Usulkan komponen utama, layanan pembuatan paste, layanan pengambilan paste, metadata store, content store, lapisan cache, CDN untuk paste populer, adaptor pemeriksa penyalahgunaan, beserta tanggung jawabnya, alur data, batas penyimpanan, dan jalur pengambilan yang sibuk (hot path).

  6. Additional High-Level Design Prompts

    Perjelas strategi rendering syntax highlighting Anda (sisi server, sisi klien, atau di-cache CDN), bagaimana pencarian dan penemuan paste bekerja tanpa biaya pengindeksan full-text, dan apakah versioning paste termasuk dalam MVP atau merupakan perhatian yang ditunda.

  7. Deep Dives

    Selami tiga area: (1) Masa berlaku konten, bandingkan TTL tetap vs. TTL geser (sliding), penghapusan lazy saat baca vs. scanner latar belakang yang eager, dan trade-off biaya reklamasi penyimpanan; (2) Pencegahan penyalahgunaan, rancang rate limiting untuk pembuatan paste per IP dan per pengguna, pemindaian konten untuk payload berbahaya, dan deteksi paste spam tanpa memblokir jalur baca yang sibuk; (3) Penanganan paste besar, putuskan kapan penyimpanan berbasis chunk diperlukan, bagaimana pembacaan streaming mengubah jalur pengambilan, dan di mana batas ukuran ditetapkan tanpa menurunkan pengalaman pengguna.

  8. Final Review Handoff Readiness

    Rangkum keputusan desain end-to-end, sebutkan arsitektur penyimpanan yang dipilih (object store vs. BLOB database), strategi masa berlaku yang dipilih, pendekatan pencegahan penyalahgunaan, risiko terbuka terbesar yang tersisa, dan rencana peluncuran singkat beserta feature flag atau dark launch yang diperlukan.

Preview solusi

Jalur referensi Solusi Pastebin adalah materi belajar yang bersifat read-only. Gunakan untuk membandingkan desain Anda sendiri dengan sebuah jalur referensi yang ringkas sebelum memulai latihan atau setelah Anda menyelesaikan satu putaran. Pisahkan pembuatan paste dari hot path retrieval. Simpan metadata paste (ID, owner, expiry, content-type) di metadata st…

Lihat paket belajar di pricing