designingds distributedsystem

Brendan Burns, “Designing Distributed Systems”
What is a distributed system? | Atlassian

Centralized Systems & Distributed Systems

Centralized Systems

A centralized system is one in which all the components or processes rely on a single central node or server to perform tasks and manage resources.

Distributed Systems

A distributed system consists of multiple independent nodes (servers, devices, or processes) that work together to achieve a common goal. These nodes communicate over a network and share resources.

Comparison

FeatureCentralized SystemDistributed System
ControlSingle point of controlDecentralized control
ScalabilityLimitedHigh
Fault ToleranceLow (single point of failure)High (redundant nodes)
ComplexitySimpleComplex
PerformanceDegrades with high loadBetter performance with load sharing
ExamplesTraditional file servers, ERP systemsCloud services, Blockchain, CDNs

Distributed Systems & Microservices

Microservices

Microservices are an architectural and organizational approach to software development where software is composed of small independent services that communicate over well-defined APIs. These services are owned by small, self-contained teams.

  • Microservices are a subset of distributed systems. They use distributed principles but apply them specifically to software architecture for building modular, scalable, and maintainable applications.
  • Distributed systems focus on system-level challenges, while microservices address application-level design challenges.