Context:
- Going thru design a photo service app indicated in the PDF - https://www.docdroid.net/AjAdPyt/how-to-design-a-distributed-system-in-3-hours-google-sre-pdf.pdf
- Key scale – there are 1 million users that upload 50 photos each day. Each photo is 4MB.
Design element on which my query is based:
- I have an upload micro-service that will take the photos from the user, and then save it on back-end disks.
Dimensioning:
- Processing wise – Per day we have - 1 Million users * 50 Photos * 4 MB each * 2 Pipes (1 Pipe coming from user to the upload micro-service, and another pipe going from upload micro-service to back-end disks).
- Calculation comes to – 4000 * 10 ^ 12 bits / day.
- This is – 40 Giga bits per second.
- If I have a machine that does 1 Gbps on the NIC, and I have a network of 1Gbps, then I need 40 machines.
Query:
- Is my thinking of – You need 2 pipes, one for user to send phots to upload micro-service, and one for upload micro-service to back-end , correct?
- Also, would we ever run into situation where NIC speed is different from the network
a. Example – NIC is 1Gbps, and network is 10Gbps?