https://docs.google.com/presentation/d/1YUQY5rNWrfdirgcCqbDyd2Yd7flWQVyMxGQ_552Hc6U/edit?slide=id.p#slide=id.p I've been depositing my pastes in many a bin since I was a young whoopersnapper PREREQUISITES - 2:25 FUNCTIONAL REQUIREMENTS - 2:38 API (NAIVE) - 3:04 CAPACITY ESTIMATES - 3:28 TINYURL (LOAD BALANCING) - 3:56 TINYURL (CREATING A URL) - 4:46 TINYURL (LOOK ASIDE CACHING) - 5:27 HIGH LEVEL DESIGN (PASTEBIN) - 5:50 PASTES VS. URLS - 6:53 NO PASTES IN THE DATABASE - 7:27 OBJECT STORES - 8:32 DATABASE SCHEMA - 9:12 MINIMIZING NETWORK USAGE - 9:31 PRE-SIGNED URL - 10:14 API ENDPOINTS (BETTER) - 11:13 HIGH LEVEL DESIGN (GET PRE-SIGNED URL) - 12:18 HIGH LEVEL DESIGN (UPLOAD PASTE TO S3) - 12:26 HIGH LEVEL DESIGN (UPLOADING A PASTE) - 12:30 HIGH LEVEL DESIGN (FETCHING A SHORT URL) - 12:37 HIGH LEVEL DESIGN (LOADING A PASTE) - 12:56 UPLOADING PASTES (ORDER OF OPERATIONS) - 13:17 CONTENT DELIVERY NETWORKS - 14:18 DEEP DIVES - 15:39 DEEP DIVES (S3 LIFECYCLES) - 16:40 DEEP DIVES (READING THE URL MAPPINGS TABLE) - 17:27 DEEP DIVES (S3 OBJECT SMART NAMING) - 17:54