system-design-refresher

Design Requirements

Good design principles

Contents

Key System Design Elements

Moving Data

Storing Data

Transforming Data

CAP Theorem

Also known as Brewer’s theorem, it is a set of principles that guide us in making informed trade-offs in 3 key components of a distributed system:

CAP Theorem

According to the CAP theorem a distributed system can only achieve 2 out of these properties at the same time.

Consistency

Ensures that all nodes in a distributed system have the same data at the same time. If you make a change to one node then change should also be reflected in the other nodes.

Availability

The system is always operational and responsive to requests regardless of what might be happening behind the scenes.

Partition Tolerance

System’s ability to continue functioning even when a network partition occurs.

SLO and SLA

Service Level Objectives

Service Level Agreement

Resilience

Expect the unexpected. To measure this aspect we use:

Resilience aspects

Speed measurements