Key Concepts for System Design - Deepstash
Scaling

Systems can be scaled:

  • Vertically - by increasing the resources of a specific node (more CPU, memory, disk etc.). This is easier to do, but it's limited. You can only ad...

1

STASHED IN:

9

Key Concepts for System Design

📖 Cracking the Coding Interview

STASHED IN:

0 Comments

Database denormalization

Joins in relational databases get very slow as the system grows bigger. You should denormalize your data to avoid joins and speed up your queries.

Normalized databases are de...

1

STASHED IN:

9

Database sharding

Sharding means splitting your data across multiple nodes. This can be done in different ways:

1. Vertical sharding

  • Store tables on different nodes...

2

STASHED IN:

9

Caching

Caching systems are usually in-memory key-value databases that provide very fast access to data. They sit between your application and the database.

Depending on your use cas...

STASHED IN:

9

Asynchronous processing

Slow operations should be done asynchronously to avoid making users wait for long periods of time until their requests are processed.

Sometimes this can be done in ad...

1

STASHED IN:

9

Networking metrics
  • Bandwidth - Maximum amount of data that can be transferred in a unit of time. Usually expressed in bits per second.
  • Throughput - Amount of data that i...

2

STASHED IN:

9

Deepstash helps you become inspired, wiser and productive, through bite-sized ideas from the best articles, books and videos out there.

GET THE APP:

MORE LIKE THIS

📖 Value Proposition Design

4 IDEAS

Docker is a very powerful tool for development and code deployment. This is what you’re missing to take it to the next level!

📖 Research

6 IDEAS

So you started development using a Docker architecture but you don’t know how to scale and deploy?

3 IDEAS