System Design Flashcards

1
Q

When should you use a RDBMS?

A

A relational database should be the default option because they have been around for 40 years and historically, they have worked well.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

When might you explore using a non-relational database?

A
  • Application requires super-low latency
  • Your data are unstructured, or you do not have any relational data
  • You need to serialize and deserialize data (JSON, XML, YAML, etc.)
  • You need to store a massive amount of data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is vertical scaling?

A

Vertical scaling is the process of adding more power to your servers in the form of CPU, RAM, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the downsides to vertical scaling?

A
  • There is a hard limit to the amount of power you can add to a single server.
  • Becomes prohibitively expensive at a certain point.
  • No failover or redundancy. If one server goes down, the website/app goes down with it.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is horizontal scaling?

A

Horizontal scaling refers to adding additional nodes or machines to your infrastructure to cope with new demands.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is a load balancer?

A

A load balancer is used to evenly distribute incoming traffic among web servers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is a three-tier architecture composed of?

A

Presentation tier: user interface
Application tier: logic
Database tier: app data

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What happens when a RDBMS is horizontally scaled using database replication?

A

When database replication is used to horizontally scale a RDBMS secondary databases are created off of the primary (original) database. The primary database typically handles only write operations and the secondary databases handling only read operations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are cache’s used for?

A

A cache is commonly used to store the result of expensive responses or frequently accessed data in memory so that requests can be served more quickly.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Consider using a cache when data is read ____ but modified ____.

A

frequently, infrequently

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Why are SPOF (single point of failure) such a big deal?

A

Because they represent a part of a system that, if it fails, will stop the entire system from working.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is a CDN?

A

CDN stands for content delivery network. CDNs are geographically distributed servers used to deliver static content and are used to improve load times.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the key benefits of incorporating message queues into a system?

A
  • Message queues help to decouple different components of a system so they can be scaled independently.
  • Serves as a buffer for requests and allows for them to be processed asynchronously.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly