Skip to main content

Posts

Featured

System Design: Replication

As application traffic increases, there may be the need to scale the architecture of the system to handle the increased load. In doing so, there are two main approaches that may be taken:  Vertical scaling or scaling up: In vertical scaling, the entire system is moved to a more powerful "machine". This implies the entire system my be utilising an architecture where CPU, RAM and Storage exist on one machine(shared-memory architecture) or where multiple machines each with its own CPU and RAM  share a single Storage(shared-disk architecture).  Horizontal scaling, scaling out or shared-nothing architecture where multiple machines(nodes) with its own CPU, RAM and Storage are networked together by software to be able to handle the incoming load either by breaking the database into chunks stored on each device(partitioning) or creating copies of the database onto multiple devices(replication).  Replication This basically means a copy of the same data is kept on multiple dev...

Latest Posts

System Design: Encoding and Evolution

System Design: Storage and Retrieval

System Design: Query Languages for Data

System design: Data Models

System Design: Reliable, Scalable, and Maintainable Applications

Webstack monitoring

Configuring a static website on Amazon S3

Postmortem