System Design Tools

System Design Tools

Interviewer: Design a smart sleeping pod.

Candidate: Does even a system exist like that?

Interviewer: Yes, it exists but not for engineers like you😂

In general interviewers may not be that rude. At least we can hope for the best. But if you are asked to design a system, you don't need to know whether such system exists or not. Your goal should be to use your fundamental tools and your execution method to begin and end. Never go with the expectations to get a known system design problem. Your approach of preparation should be very generic and not a system bound approach.

What is system bound approach?

It means that you solve each design problem using a very different technique or maybe you dig online to understand how they were designed. Your goal is not to know how they were designed but to understand how you would be designing it. This method gives you an idea of only one system. This approach fails to build the skill in you, the skill which could help you design a new system.

Prepare system design by mastering the important fundamentals. Things will automatically become easy for you. Most of us begin our system design journey by watching some videos of some systems and we start losing interest, why? Because we are yet to understand the details of the components used. For example, if we design a system and keep using the term Kafka, do you really think you would understand anything if you don't know what is Kafka and how it works? In fact, you will start losing interest, you will find system design really hard to understand.

So, the best way is to master on the tools.

If I only had an hour to chop down a tree, I would spend the first 45 minutes sharpening my axe.” – Abraham Lincoln.

System design tools are the fundamentals that we would use to chop down a big system. But remember "A hammer cannot help you chop down a tree". So, just knowing how to use a hammer is not sufficient. But we need to understand how to use the important tools and apply them as required. So, for a system design we need to master on the most important fundamental components and use them as required to build any new system.

If you are always using a different approach to design a new system, then you are bound to fail on many System Design interviews

List of must know fundamentals for system design interviews.

✅ Authentication and Authorization.

✅ Different protocols: HTTPS, Web Socket, HTTP Long polling, Gossip protocol.

✅ Gateway, Load balancers, Reverse proxy.

✅ Stateless servers and stateful servers.

✅ Microservices and Monoliths.

✅ Queues like Kafka, SQS, SNS, Azure event hub or any other queues.

✅ Cache and different cache implementations. Good to know about Redis and Memcached.

✅ Different databases (SQL, NoSQL, File storage, Blob storage).

✅ Compute techniques, distributed compute and stream processing.

✅ CDN


There are certainly a lot more components which are important tools and must be covered.

Below is the component diagram of some important fundamentals to cover to master any system design interviews.

Note: Below is not a design of any system but a component diagram to show how different components can be connected to make them work together.

No alt text provided for this image
Components of system design


Do comment if you think this list must contain some more components.

Happy learning System Design!

Subscribe to my newsletter for more insights on System Design.

Follow us on MADAlgos

Good Luck and Amazing Initiative buddy🎉

A very crisp and to-the-point approach

Pl join my LinkedIn group – “Business providers and Business seekers” – https://www.garudax.id/groups/9272145/ .  I will ask my handler to circulate your Profile in my 2.5 Lac persons network for reach. In the meantime, pl follow my posts on https://www.garudax.id/in/deepaksaxena1/  . In case of exigency, I shall refer you in person to some founder. Since we are 100% online e-bidding, pl refer https://www.nprocure.com/ for our tenders

Like
Reply

To view or add a comment, sign in

More articles by Ashish Dey

  • API Gateway and its implementation

    Hello, fellow learners! Today I'm going to talk about one of my favorite topics: API gateway for System Design…

    7 Comments
  • Load balancer misunderstandings

    "Balance is not something you find, it's something you create." - Jana Kingsford In my last episode I talked about "DNS…

    2 Comments
  • DNS Misunderstandings

    "The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge." - Stephen Hawking In my last…

    8 Comments
  • Authentication and Authorization in System Design

    A joke to begin with 😂 Why did the experienced professional refuse to go on a rollercoaster ride? Because they had…

    1 Comment
  • Must know protocols, System Design Ep 03

    In the last post, I discussed about: Limiting on number of requirements. What interviewers look in you? The law of…

  • The Systematic approach, System Design Ep 02

    Interviewer: Design a smart sleeping pod. Smart Candidate: "I have to gather the requirements first", Can you please…

    3 Comments

Others also viewed

Explore content categories