I was recently asked "Design Customer Reviews page for Amazon like E Com site". After probing the interviewer got below requirements:
I thought I did well, started with DB schemas (used denormalization, used indexes, sharding, etc), API endpoints, then drew an architecture diagram, happy path, sad path (where i used Dead Letter Queue), LBs, caches, CDNs based on Geography, etc. I used S3 buckets for storing images. I also gave some nice to have features like depending on client (whether mobile/tablet/desktop) we can send image as thumbnail or actual original size image. I also considered different user clients, like mobile/web and if user is from mobile a long polling may drain their battery, etc.
Follow ups were asked based on my response -
I thought I did well, specially considering did this in just 40 mins. Interveiwer also expressed satisfaction, but I got a shock in feedback. Feedback was that my design was Ok, not bad, but I did not consider this to be a "large scale" system and my design was not suited for large scale.
I am totally devastated and demotivated. I dont know what else can I improve my design here.
How will you design this system? Specially to handle large scale loads? What changes will you do to my design?
Thanks!