Interview Bootcamp
Vote

0% completed

Designing Pastebin

1. What is Pastebin?

Pastebin like services enable users to store plain text or images over the network (typically the Internet) and generate unique URLs to access the uploaded data. Such services are also used to share data over the network quickly, as users would just need to pass the URL to let other users see it.

If you haven't used pastebin.com before, please try creating a new 'Paste' there and spend some time going through the different options their service offers. This will help you a lot in understanding this chapter.

.....

.....

.....

Like the course? Get enrolled and start learning!
J

JC Denton

· 5 years ago

Kevin Cox It would be great to have a little more info on differences between the block cache & metadata cache

B

Brian Sunbury

· 4 years ago

What is the benefit of using Object Storage instead of storing the text in the Paste table in the database? I know pastebin allows you to store images, which would require object storage, but the requirements for this state "Users will only be able to upload text".

Show 2 replies
P

Pramod Kumar

· 5 years ago

Hi Team, Can we have a system design problem solution for e- commerce sight like amazon / flipkart

B

Brian Sunbury

· 4 years ago

In the "Memory estimates" section, at the end of "4. Capacity Estimation and Constraints", it states "Since we have 5M read requests per day, to cache 20% of these requests, we would need: 0.2 * 5M * 10KB ~= 10 GB". But wouldn't we be caching the 1M pastes instead of the 5M reads? Your clarification is greatly appreciated.

Show 1 reply
C

Cristian Grigore

· 4 years ago

Can BLOB be used to store the paste's text?

Show 1 reply
Jeremiah Stones

Jeremiah Stones

· 2 days ago

“The system should be highly reliable; any data uploaded should not be lost.”

The second clause is specifically a durability requirement:

  • Durability → once data is successfully stored/acknowledged, it should not be lost.
  • Availability → the system is reachable and able to serve requests.
  • Reliability → broader umbrella idea: the system consistently behaves correctly over time despite failures.
  • Fault tolerance → the system can continue operating when components fail.

using durability is more accurate and clearer. The current sentence conflates reliability with durability.

Show 1 reply
A

Asish Balu

· 4 years ago

In the DB Design, why is the URL hash size 16 instead of 6?

Show 2 replies
J

Junaid Effendi

· 4 years ago

For KGS service, to move data to application server cache, don't we need a LB to distribute across all servers?

Show 1 reply
A

Aaron Rosenzweig

· 4 years ago

With regards to System APIs, the tutorial suggests the fetch API to be "getPaste(api_dev_key, api_paste_key)" - I wonder why we ask for the api_dev_key? Shouldn't this be an un-authenticated quota-less API call? I see why add/delete require this parameter but seems best to not ask for it with "get."

Show 1 reply
Samarth Shah

Samarth Shah

· 3 years ago

More recently, some companies (like Shopify) are debating between having a microservice architecture, versus having a monolithic service architecture with modules. Can the KGS live in the application layer as a separate module? Can someone compare the pros and cons of each approach?