System Design : Part 1

Shashwat Agarwal
3 min readSep 5, 2022

This blog and future blogs will be the focal point of my system design learning. I’ll try to be thorough while remaining concise so that concepts are quickly and thoroughly understood.

My major goal in writing these stories is to provide revising materials that I and anyone else who reads can use to prepare for interviews.

What is System, Design and System Design ?

A system is an architecture or group of technologies that serves a specific set of users with a specific set of requirements. Understanding the requirements and devising a strategy to integrate the resources to get the desired result is what design is all about.

The process of defining the components, modules, interfaces, and data for a system in order to meet specified requirements is known as system design.

Components of System Design

The major components of system design are data, databases, applications, cache, message queues, infrastructure, and communication. System design components increase or decrease in number depending on the complexity of the system. Many of the above components speak for themselves, but i'd like to provide some examples for each :

  • Data : Text, Images, Videos
  • Databases : Mongodb, MySQL, Cassandra
  • Applications : Java, Python, Golang
  • Cache : Redis, Memecache
  • Message Queues : Kafka…

--

--

Shashwat Agarwal
Shashwat Agarwal

Written by Shashwat Agarwal

Software Developer passionate about Python, Philosophy, God, and Startups. Exploring innovative ideas and diving into Golang soon.