System Design Mock Interview: Design Instagram

Поділитися
Вставка
  • Опубліковано 28 чер 2024
  • Don't leave your system design interview to chance. Make sure you're interview-ready with Exponent's system design interview prep course. bit.ly/3TCpTbn
    In this interview, Jacob (Dropbox Software Engineer) answers a system design interview question of designing Instagram, commonly asked in software engineering and technical program management (TPM) interviews.
    The diagramming tool we use is called Whimsical: whimsical.com/
    Chapters -
    00:00:00 Introduction
    00:00:09 Question
    00:00:35 Answer
    00:01:13 Requirements
    00:03:41 Scale
    00:06:19 Data types
    00:14:50 Design
    👉 Subscribe to our channel: bit.ly/exponentyt
    🕊️ Follow us on Twitter: bit.ly/exptweet
    💙 Like us on Facebook for special discounts: bit.ly/exponentfb
    📷 Check us out on Instagram: bit.ly/exponentig
    📹 Watch us on TikTok: bit.ly/exponenttikttok
    ABOUT US:
    Did you enjoy this video? Want to land your dream career? Exponent is an online community, course, and coaching platform to help you ace your upcoming interview. Exponent has helped people land their dream careers at companies like Google, Microsoft, Amazon, and high-growth startups. Exponent is currently licensed by Stanford, Yale, UW, and others.
    Our courses include interview lessons, questions, and complete answers with video walkthroughs. Access hours of real interview videos, where we analyze what went right or wrong, and our 1000+ community of expert coaches and industry professionals, to help you get your dream job and more!
    #softwareengineer #systemdesign #mockinterview #technicalprogrammanagement #tpminterview #tech #technicalprogrammanager #coding #programming #systemdesign #entrepreneurship #exponent #softwareengineering
  • Наука та технологія

КОМЕНТАРІ • 463

  • @meqdaddev4341
    @meqdaddev4341 2 роки тому +117

    Great job.. Thanks for the video.
    I think we can add the following:
    - Elaborating the DB sharding and partitioning in the system.
    - DB Replication, by adding redundant blocks for database based on master/slave relation, where the master is for write, and slaves for read.
    - Talking about the data searching, like considering to use Elasticsearch for example.
    - Adding a block for CDN to clarify where it should to be in the system diagram.
    - Adding a message/uploading queue
    - Making an estimation for bandwidth

    • @sourabh258
      @sourabh258 Рік тому +1

      I think DB Replication is understood for default.
      Rest all points are great 👏

    • @igorbragaia4895
      @igorbragaia4895 6 місяців тому +1

      This video is great introductory resource, however it is a little bit superficial. Anyway was great watching and looking forward for the other videos on this channel!

  • @BoNyKiD
    @BoNyKiD 2 роки тому +126

    "And then we can talk about the API a little bit later"
    Never talks about API

    • @josephmorales652
      @josephmorales652 4 місяці тому +2

      I know my ass would not get hired if I did that.

  • @NianLi
    @NianLi 2 роки тому +94

    A good to add would be message queue. As we know, when we update for example a big image, user shouldn't be waiting there for a long time. Also, if we write the huge chunk of data directly to to the image storage, it will explode (storage usually won't have such a big RAM)! Hence, a good practice would be push it to the queue with a publisher, and have multiple listeners to update these images data (binary formats) into the storage.

    • @lagneslagnes
      @lagneslagnes 10 місяців тому +1

      pushing large objects to S3 won't explode it

    • @coolY2k
      @coolY2k 8 місяців тому +1

      @@lagneslagnes and even if it did, where you would store 5mb image? In queue? Azure Blob/S3 are by design much more scalable than any queue that can handle 5mb binaries within a message.

  • @JamesMortenson-fz7ch
    @JamesMortenson-fz7ch Рік тому +4

    This is a great example of what you should strive to have completed at the halfway point of the interview.

  • @NithinMWarrier
    @NithinMWarrier 3 роки тому +11

    Thanks a lot, you clearly explained how to draw the architecture diagram component by component and finally building the whole system. Other popular system design videos missing this.

  • @babybear-hq9yd
    @babybear-hq9yd 3 роки тому +89

    Unreal video! I'm relatively new to Systems Design but this was easy to follow and aligned with a lot of other good information I've been finding on the web. Thank you!

    • @tryexponent
      @tryexponent  3 роки тому +1

      Glad you liked it! Be sure to subscribe for more like this :)

    • @shivamdashore6864
      @shivamdashore6864 2 місяці тому

      @@tryexponent How can I use this type of whiteboard ? Is it free of I have to pay something to use ?

  • @udb_music
    @udb_music 10 місяців тому +2

    After scrolling through 100s of SD videos finally I found a way to approach the questions in the interviews. Your step by step approach from start to finish was really helpful. Thanks

  • @kimnguyen1227
    @kimnguyen1227 8 місяців тому +2

    I like the pace and structure of this video. What helps is that I worked on my design and looked at this video to see how well I did. One revision I would make is adding a object storage proxy and the backend service would call the proxy instead for protected images. To me, object storage is the toughest part of this problem. Public images can be served with cdn but private photos must retrieve from object storage.

  • @vennyroxz
    @vennyroxz 3 роки тому +57

    Loved the video, great explanation. What is the UI/ tool used here to draw for the system design?

  • @nickcocks2745
    @nickcocks2745 3 роки тому +23

    Love this! Have my first ever systems design interview tomorrow and the broadness and pace of this interview is perfect!

    • @tryexponent
      @tryexponent  3 роки тому +5

      You got this!

    • @nickcocks2745
      @nickcocks2745 3 роки тому +15

      @@tryexponent An update! I'm onto the next round (onsite) in no small part thanks to this video!

    • @db13162
      @db13162 3 роки тому +1

      @@nickcocks2745 Keep on!

    • @RomainJouin
      @RomainJouin 3 роки тому +1

      How did it go ? Is that the kind of answer that was expected by your interviewer ?

    • @nickcocks2745
      @nickcocks2745 3 роки тому +26

      @@RomainJouin I GOT THE JOB :) so it seems so! It's my first ever software engineering job (YAY!) so they were more looking for how I broke problems down and communicated than they were really grilling me on systems engineering, I managed to also squeeze in a mock interview before the real one and I used this video as reference material

  • @AmanVerma-lt7px
    @AmanVerma-lt7px 2 роки тому

    This is a great video and I haven't evenr watched it complete. I really like how the requirements are collected and quantified

  • @shehbazjaffer
    @shehbazjaffer 3 роки тому +1

    Excellent Video! I was wondering what rationale should an interviewee give if asked about the scalability (specifically, write scalability) after choosing a relational database model?

  • @markp9827
    @markp9827 3 роки тому +100

    I think this video is really very generic, so much so that this design could be applied to any problem. Would have loved see you deep diving into details of any one component in this 30 min video. For e.g is database sharing required? Do we need noSQL databases? how would the fan out process work? How to handle influencers who have 5 million followers? Disappointed to see those details missing here.

    • @nextlevelgamestudios
      @nextlevelgamestudios 3 роки тому +1

      I would think for say N-Million followers, that work is either broken down aycnch and its broken across a number of shards in a region.

    • @Damouse007
      @Damouse007 3 роки тому +2

      He spent the whole time on the easier part of the design. He didn't model the feed, or describe when and how its built.

    • @nextlevelgamestudios
      @nextlevelgamestudios 3 роки тому +3

      @@Damouse007 I think recently I just saw a architecture mock interview for Twitter in which they go over is designing the seed which was actually genuinely helpful it’s a very interesting approach to modeling I would probably look that up if you’re interested

    • @namanmishra08
      @namanmishra08 Рік тому +2

      Agreed, this much detail will not clear a system design interview

  • @prashantsingh1096
    @prashantsingh1096 3 роки тому +1

    Thank you . This video shows that even hard topic like system design can be taught in a simple way . I like this .

  • @OffbeatTravelVK
    @OffbeatTravelVK 2 роки тому

    Really helpful video Jacob, super detailed in explaining the architecture. Thank you

  • @anandjain8668
    @anandjain8668 3 роки тому

    I loved this video. You explained in such a easy way. i was able to connect everything. Thanks man :)

  • @LaVengeanceInc
    @LaVengeanceInc Рік тому +4

    The feed generation part needs a bit more detail IMO. That's the most challenging part of this. Would you generate it on read or on write? Or a combination of both? Also, what if it's not a linear timeline of events but needs to be ranked? Also, details around comments and replies?

  • @yobbei
    @yobbei 2 роки тому +5

    Great video. Have you considered talking more about the APIs?

  • @user-xd3qb9ok9i
    @user-xd3qb9ok9i 3 роки тому +116

    Nice pace of the mock interview. However, the diagram can actually fit most of the system. Shouldn't we focus more on how to fan-out photos, generate news feed, etc, which are more specific to "designing Instagram"? I wonder if we only talk about the high-level things and teaching the interviewers those basic architectural concepts (read-write, load balancer, s3, CDN) as this video does can really ace the interview.

    • @denebgarza
      @denebgarza 3 роки тому +43

      I kept waiting for the actual system design to start. Then the video ended. What this video covered is basically the skeleton of any system where you upload/view single files at a time.

    • @BrijeshBolar79
      @BrijeshBolar79 3 роки тому +10

      Yes found it to be really basic. Even I was looking forward to fanning out photos as well some replication to the dB as only one dB instance is used for both read and write operations for 10 million users

    • @kyletham9914
      @kyletham9914 3 роки тому +5

      @@BrijeshBolar79 what does fanning out photos mean in this context? and any good resource on db replication / sclaing? thought that part was lacking definitely.

    • @tsaregrad
      @tsaregrad 3 роки тому +2

      I see that in so many videos on UA-cam. 0 specifics about the actual system, just generic LB, DB schema, object storage stuff. I really wonder if interviews are buying this….

    • @denebgarza
      @denebgarza 3 роки тому +3

      @@tsaregrad they're not. You won't get any reputable offer with details UA-cam videos provide. These are just for the views.

  • @basselabuelhija7366
    @basselabuelhija7366 2 роки тому +18

    Thanks for the video! Really enjoyed it as it gives a great exploration of the problem.
    However, I think the candidate needs to further explore the scaling of the data and provide estimations about read/write requests per second, traffic and storage needed that we need for instance for 10 years, and what to do when the DB is full that we need to scale vertically (as we you have gone for a MySQL).
    Those information will help out understanding the overall scale of our system and brightens the scene for the interviewer that we are set with with expected traffic and can manage to handle the requests.

  • @rohitparthasarathy6671
    @rohitparthasarathy6671 3 роки тому

    Wow - You just earned an subscriber - Excellent pace and detail Thanks !!

  • @_johnathan
    @_johnathan 3 роки тому +4

    Really wish I had seen this before my second round TPM interview at a major FAANG company. LOL Great video!

  • @thatsamorais584
    @thatsamorais584 3 роки тому +7

    This was an enormous help in my interview today! I adapted the flow to talk about the specific requirements. Calculating scale and talking about the data model with a segue into the overview diagram was very coherent. Most of all it produced every possible opportunity to highlight my experience with the components I presented, which is the overall goal.

    • @tryexponent
      @tryexponent  3 роки тому +1

      I'm so glad this was helpful Alex! Definitely let us know how the interview went!

    • @thatsamorais584
      @thatsamorais584 3 роки тому +1

      @@tryexponent I moved forward in the process, and the SDI was a large part of it! I discovered through the interview process about their product and the responsibilities of the role that it was not what I would like to pursue, but that's a different story.

    • @tryexponent
      @tryexponent  3 роки тому +1

      @@thatsamorais584 Congratulations!!

  • @sugurulovestokyo1260
    @sugurulovestokyo1260 2 роки тому

    Thank you for posting this! Really helpful!

  • @lankan526
    @lankan526 3 роки тому

    Nice video! Do you think you could go over potential bottlenecks and how you would resolve those?

  • @tonyhuang9959
    @tonyhuang9959 3 роки тому +8

    very helpful, can you make a more mock system design interview!!!????? thanks!

  • @appstuff5778
    @appstuff5778 3 роки тому

    Do you have any videos that talk more in depth about mobile architecture? For example battery usage, disk space on the device, networking speeds and data consumption of the device etc.
    If not do you know of any resources that have that info? Currently studying for FB design interview as an iOS engineer

  • @daveB133
    @daveB133 2 роки тому +2

    Anyone have any thoughts around the choice to go with SLQ (as opposed to NoSQL)?
    I’m relatively new to system design, but Twitter sounds like it would benefit more from the scalability that NoSQL would provide?

  • @hewhocanfly
    @hewhocanfly 2 роки тому

    Good explanation. You made a complicated problem easy to follow and understand!

  • @moinmaster3516
    @moinmaster3516 3 роки тому

    so good, which tool are your using for capturing this all designing detail on one screen

  • @richann6637
    @richann6637 2 роки тому +3

    Nice video! Which software do you use for the diagram?

  • @ryanm6528
    @ryanm6528 2 роки тому +3

    Very good video for very novice engineers looking to learn about systems. However, there are big gaps here when it comes to scaling, ie. using a relational database (which also decreases performance) and having a synchronous system.

    • @rodoherty1
      @rodoherty1 2 роки тому

      I had some questions about this, too. I can see the rationale for an RDBMS but from a scaling perspective, it would surely run into trouble. I was hoping the video might discuss how failover to another Region. The topic of Failover would surely come up in an interview.

  • @mrarun8007
    @mrarun8007 2 роки тому +1

    Great stuff. Please post some mock interviews where the candidates failed. Thank you.

  • @Criiz22
    @Criiz22 3 роки тому +1

    Thanks so much for this video! I loved it!

  • @RohanShetty1992
    @RohanShetty1992 3 роки тому +1

    Great work , I learnt a lot today and the video was well paced and informative. Thanks

  • @user-hh8fe2jk6p
    @user-hh8fe2jk6p 2 роки тому +1

    Hello! What are you use for draw structure in this video?

  •  2 роки тому

    Really nice video! Thanks!
    What is this program you're using through the entire video?

  • @jamiepearcey9335
    @jamiepearcey9335 3 роки тому +24

    I am not sure that a relational database is the best choice here. There are often relationships in data but sometimes you need to determine the right trade offs in terms of scalability. Though I appreciate that a relational model can be designed to work at such scale (read replicas, sharing etc), I would consider using NoSQL solution for the media metadata api, and a graph database for the activity feed.

  • @truemanrt
    @truemanrt 3 роки тому +1

    Good video, it would help if you can include rest interfaces (not in great detail, but something) as well in the future. A bit more diving into depth would help.

  • @user-sk7dj6lw9d
    @user-sk7dj6lw9d 3 роки тому +15

    Actually I think a write-through cache, or cache-aside to the write service will be easier to generate the feed. Bcs the cache server will know what content is pushed recently.

    • @ConernicusRex
      @ConernicusRex 2 роки тому

      So will the objects themselves who are stored with time and location data. Any component dealing with those objects will have that data, not just the cache.
      You want the use case to be “new to the user” not “new to the system” anyway.

  • @afraz-khan
    @afraz-khan Рік тому

    Its simple and compact, loved it, thanks.

  • @MrNate858
    @MrNate858 3 роки тому +4

    What program do you to make these designs on your videos?

  • @tannerbarcelos6880
    @tannerbarcelos6880 3 роки тому +3

    Learned a ton from this. Never have had a Systems interview and I am a new grad so my potential onsite coming up has a design portion so trying to grind through these and learn a ton!

    • @tarunstv796
      @tarunstv796 3 роки тому +1

      Ton?!

    • @arobot4398
      @arobot4398 3 роки тому +5

      doesn't make sense asking a fresh grad system design questions.

    • @SumedhSen97
      @SumedhSen97 2 роки тому

      I am a new grad as well and have a sys design interview coming up. How deep did you go in the system? what all did you discuss and what all did you leave abstracted?

    • @ernestmummey6446
      @ernestmummey6446 2 роки тому

      @@arobot4398 I have a interview coming up that is a system design interview, they are pretty common to be honest

    • @ConernicusRex
      @ConernicusRex 2 роки тому

      @@arobot4398 most F500s who want to hire anything above entry level often have at least one systems design and architecture interview in the process.

  • @akashjain2990
    @akashjain2990 3 роки тому +5

    Great video! Thanks for creating this content! I thoroughly liked the half hour video. If one thing I could suggest, would be little bit more deep dive into the design - API, sharding, replication etc. Also in case of read, you are connecting the mobile device directly to Object Store, then why not in case of write as well? The device can directly write to object store, and just push meta data through the App server (write). Are there any downsides you were thinking?

    • @stanislausaprankou3495
      @stanislausaprankou3495 3 роки тому +2

      I might be wrong, since I'm also not an expert in system design, but my reasoning would be as follows: We can introduce a CDN between S3 and clients, making serving static files much faster. But I'm not sure if we can speed up the upload process (from the client to S3) in a similar way.
      Also writing directly to the S3 bucket just doesn't seem right to me from the security perspective

    • @Arrygoo
      @Arrygoo 2 роки тому +2

      @@stanislausaprankou3495 you can request for a signed url from the server, and use that to upload directly to S3. Passing all those large files through the server is going to add so much unnecessary cost.

  • @noelomondi4849
    @noelomondi4849 3 роки тому +5

    I have a system design interview coming up next week, what tool are you using for sketching?

    • @furkan2640
      @furkan2640 2 роки тому

      Which tool you used in the interview can you mention please

  • @vlad7780
    @vlad7780 2 роки тому +17

    Great video, thank you. Good example of CQRS in action. For further improvement it would be a good idea to use another DB for feed generation, because access patterns will be slightly different: OLTP for user actions and OLAP for feed (maybe some recommendation system under the hood).

  • @elxproBR
    @elxproBR 3 роки тому

    Love this!!!! really!!!!

  • @BABEENGINEER
    @BABEENGINEER Рік тому

    What if you're asked to build a Logging API? Then it would just be client-side right? Would you go into details about servers and databases if it's mostly client-side?

  • @sudhaganesh6419
    @sudhaganesh6419 3 роки тому +2

    Great presentation. Thank you :)

  • @user-ms9of1qn4w
    @user-ms9of1qn4w 3 роки тому +1

    This is great. The feed if generated in an hour it seems slow. Could you do it when a followed person updated 500ms ago?

    • @NianLi
      @NianLi 2 роки тому

      500ms is too short. There are too many mappings, you even cannot finish the update within 500ms. (i.e. if the update has not finished, how can you start a new update). For huge data cache syncing, usually we would do database sharding and have multiple threads to update each category separately. This will boost the total speed. As for the updating time, it really depends, it could range from 1min - 1 hour and even 1 day (like billing information). But 500ms is totally unnecessary. As a user, can you feel any difference between 500ms and 10s? No. But it is a huge diff in CPU & RAM perspective, 10s = 500ms * 20 times!

  • @deathbombs
    @deathbombs 3 роки тому

    how about using object store for images, combined with DB for personal data?

  • @deathbombs
    @deathbombs 3 роки тому +2

    Should client be calling to web server before the app server? App server handles business logic, web server handles the user's requests

  • @petrob123
    @petrob123 7 місяців тому

    Such a great explanation. Thank you.

  • @shambhavishindems4255
    @shambhavishindems4255 3 роки тому +7

    Can we use graphs to record follow relation between users?

    • @PradeepSingh-vm1gl
      @PradeepSingh-vm1gl 3 роки тому

      Yes. Graphs. Graphs database is best to store all the user's information & relationships between them. The response time for getting the relationship as well information about the user is so very fast with the Graph database. Graph databases are best suited for this type of many-2-many relationships as compared to the traditional relational databases. I do not agree with this guy saving user's details in the relational database. But basically, you must need all diff kind of databases for diff-diff purpose in such a large scale application. The architecture he designed is a common architecture for a simple mobile app. Have a look how
      complex the architecture can be for Instagram/Facebook.
      github.com/codekarle/system-design/blob/master/system-design-prep-material/architecture-diagrams/Facebook%20System%20Design.png

  • @FizWiz91
    @FizWiz91 3 роки тому

    Nice one. The connection between the metadata DB and the Cache got me wondering if it's possible to have a database trigger that actually updates a cache when data changes

    • @ManishKumar-mo6gx
      @ManishKumar-mo6gx 3 роки тому

      Actually there will be a cache miss and then cache will go to the DB to get the updated data.

  • @xiangweichen
    @xiangweichen 2 роки тому +1

    What’s the drawing tool you are using? Looks really nice! Share a link?

  • @srki80
    @srki80 3 роки тому +1

    What is the tool you are using for drawing/diagraming?

  • @VideosVix1
    @VideosVix1 2 роки тому

    hello, what app are you using for these sketches and notes? thanks great content!

  • @selvalooks
    @selvalooks 3 роки тому

    Good coverage !!! nice walk through !!!

  • @BeHappyAndNice
    @BeHappyAndNice 10 місяців тому

    Thanks for sharing this amazing knowledge.
    I could not understand whether the generated feeds are stored in the cache based on each user or not. Because I think, storing feeds based on each user, causes Cache faces lots of hits.

  • @vishal.shetty
    @vishal.shetty 2 роки тому +1

    Thank you for this video, this is awesome. BTW which app you are using for designing the system?

  • @kafychannel
    @kafychannel Рік тому +2

    Cool really liked it thanks a lot

  • @jasper5016
    @jasper5016 2 роки тому

    I have a question @22.05, you mentioned that when we will write data, we will write cache as well. If there is consistent write operation happening, you will keep changing cache. Would not it be more inefficient?

  • @irynasherepot9882
    @irynasherepot9882 3 роки тому

    Thank you! Is this right - for every request for the image, there are two requests fired - one for image path from either cache or DB, and one for the image itself from S3 after the first requests executes? Thanks.

  • @AnhNguyen-vu7mc
    @AnhNguyen-vu7mc 5 місяців тому +1

    a deep dive into the feed service would be greate. because obviously thats instagram's core feature

  • @eibrahim
    @eibrahim 2 роки тому

    Very nice video. What is the tool you used in the video? Looks pretty slick and easy to use.

  • @andywu9774
    @andywu9774 2 роки тому

    Can someone let me know which whiteboarding tool is used in the video please? Seems very useful!

  • @taheerahmed1120
    @taheerahmed1120 2 роки тому

    Exponent provides best mock interview videos

  • @tommysuriel
    @tommysuriel 2 роки тому

    Don't you need to use a CDN for the s3 distribution of images?

  • @uzoa.3504
    @uzoa.3504 2 роки тому

    Nice. What platform do you use for your presentation (video + slides) - Canva?

  • @hfergany
    @hfergany 2 роки тому

    Excelent video , Could you tell me what is the tool you are using for drawing?

  • @babajidedonald6899
    @babajidedonald6899 2 роки тому

    Great! I have been looking for a more detailed system design interview. I'm glad I found this very explanatory and informative.

  • @virajkamat2764
    @virajkamat2764 3 роки тому

    Excellent explanation.

  • @RomilShah
    @RomilShah 3 роки тому

    Do we need to explain data modeling also?
    Seen first time in system design.
    In what cases I should be presenting database modelling and what cases I shouldn't?

    • @TheSlateOnline
      @TheSlateOnline 3 роки тому

      You almost always have to do some data modeling, which isn't too difficult. I would assume you need to do it unless the interviewer interrupts you and says you don't need to. Usually, in system design, you are supposed to be driving the interview once you clarified the features.

  • @gqhl1003
    @gqhl1003 3 роки тому +11

    Hi, thank you for proving this video, it is really helpful!
    Just to be clear, at 22:41, in the diagram, the cache policy you drawn seems to be a write-around cache policy, but at 21:56, you mentioned write-back cache policy (which I believe write operation is written to Cache first, and then after certain intervals, the data is written to DB). Did I understand this correctly?

  • @boombasach
    @boombasach 10 місяців тому

    Should we not consider a async queue before uploading to S3?

  • @mariamcduff4394
    @mariamcduff4394 5 місяців тому

    Very helpful - Thank you.

  • @AbderrahmaneBenbachir
    @AbderrahmaneBenbachir 2 роки тому +1

    Hi, great video, what tool did you use for the virtual whiteboard ?
    Also Amazon S3 is not a distributed file system but a key-value DB.

    • @pratiktiwari5689
      @pratiktiwari5689 2 роки тому

      Whimsical

    • @kostas_x
      @kostas_x 2 роки тому

      Actually, Amazon S3 is indeed a distributed file system (or an object storage, as Amazon likes to put it) and not a key-value DB. Amazon uses its DynamoDB service for key-value storage.

  • @edoardofoco216
    @edoardofoco216 2 роки тому

    What tool are you using to sketch out the architecture?

  • @markdavis1358
    @markdavis1358 Рік тому

    Great video, really helpful.

  • @kp-ws7do
    @kp-ws7do 3 роки тому

    Could you make a video about how to upload image and another video about how to design Instagram feed?

  • @Ninjiazhao2390
    @Ninjiazhao2390 2 роки тому

    what is the difference between load balancer and cdn? I guess both of them are for loading faster, distributed?

  • @tavoleyva8235
    @tavoleyva8235 3 роки тому +3

    Hi! Why not explore Hybrid database implementation using RDBMS and NoSQL databases? How would this system handle the bottlenecks when start scaling? What would be the response time? Also, implement queues between the cache and the database could help. It's a clean implementation, great quality, it's a possible approach.

    • @tryexponent
      @tryexponent  3 роки тому +3

      Hey Gustavo! Good questions. In a sense, we are using a hybrid approach with a relational database plus a key-value store like Redis, but you could use other types of RDBMS and NoSQL systems, too. In reality, Instagram uses Postgres + Cassandra, with some advanced indexing and sharding strategies which you can read about on their blog! Let us know if that helps! instagram-engineering.com/handling-growth-with-postgres-5-tips-from-instagram-d5d7e7ffdfcb

    • @thatsamorais584
      @thatsamorais584 3 роки тому

      @@tryexponent i think i came across the same article in my own research. totally agree.

  • @kapil8965
    @kapil8965 3 роки тому +2

    Hey great video Jacob learned a lot. Really liked the way you explored everything giving fairly reasonable and convincing solutions . Thanks for the video again really appreciate the effort.

    • @tryexponent
      @tryexponent  3 роки тому

      Thanks Kapil! If we had to make another video next, what should the topic be? :)

    • @kapil8965
      @kapil8965 3 роки тому +2

      @@tryexponent Typeahead Suggestion or Twitter Search would be interesting topics .

  • @amanpathania
    @amanpathania 2 роки тому

    What tool are you using to write the requirements?

  • @sourabh258
    @sourabh258 Рік тому +1

    Its nice, thank you !
    1. CDN could have been added
    2. Encoding of videos and photos

  • @yanyankowski7781
    @yanyankowski7781 3 роки тому +3

    An excellent video and the way of presenting. I have a question, though, about the diagram. The connection between the database and the object storage seems not to belong there, as the database doesn't care what file path it stores.

    • @tryexponent
      @tryexponent  3 роки тому +2

      Hey @Yan, that's a good point - there's no direct dependency between these two components, but we wanted to illustrate that the file path is referencing the object storage in this case

  • @aria5935
    @aria5935 2 роки тому

    What's the diagram software in this video? It looks amazing.

  • @batelluzon6931
    @batelluzon6931 2 роки тому

    Amazing!! thanks:)

  • @arturoesquivel13
    @arturoesquivel13 3 роки тому +1

    What would have changed had the requirements been web based vs mobile based? If any?

    • @tryexponent
      @tryexponent  3 роки тому +5

      Hey Arturo! There are certainly some differences in web or mobile-focused application, however a good backend would work for several types of clients. We didn't dive into the mobile or web client here - would you like to see another video focused on of those?

  • @alialtntas1798
    @alialtntas1798 3 роки тому +1

    What is the programme is used for here, i love it many thanks

  • @aditya8404
    @aditya8404 3 роки тому +1

    Why was the choice RDBMS and not something like a GraphDatabase as it makes more sense for querying on larger scale

  • @thomaskim5136
    @thomaskim5136 2 роки тому

    i like the sound of your keyboard, what build is it?

  • @d5lw2g
    @d5lw2g 2 роки тому

    great tutorial! what tool is this?

  • @TheHaroldin
    @TheHaroldin 3 роки тому

    Hey, great video, which tool are you using there?

  • @imjaiman
    @imjaiman 3 роки тому +2

    well explained, which software are you using?

  • @balrajvishnu
    @balrajvishnu Рік тому

    Well done, nicely explained

  • @kamalbalasubramanian621
    @kamalbalasubramanian621 2 роки тому +1

    what software is that you are using for the DFD?

  • @seemadubey7247
    @seemadubey7247 Рік тому +1

    Great video , knew all the components but to put it all together you did a great job, one small note caching layer is generally implemented at CDN or Load balancing layer so it is closer to where the users are and prevents backhauling of traffic to where the servers are

  • @RowlandMteteziDigitalsurgeon
    @RowlandMteteziDigitalsurgeon 3 роки тому

    What visual tool are you using for the presentations in this video?