distributed system is a collection of computer programs that utilize
computational resources across multiple, separate computation nodes to
achieve a common, shared goal. Distributed systems aim to remove
bottlenecks or central points of failure from a system.
What happens when you build an application as a single, deployable unit that
works quite well, but over time it grows in size and complexity? It often
becomes more challenging to maintain, development velocity slows, and risk of
failure increases. In this case, the evolutionary path is for the monolith to
evolve into a distributed system, typically a microservices architecture.
What is a
A distributed
distributed system
system?
is a collection of computer programs that utilize
computational resources across multiple, separate computation
nodes to achieve a common, shared goal. Also known as distributed
computing or distributed databases, it relies on separate nodes to
communicate and synchronize over a common network. These nodes
typically represent separate physical hardware devices but can also
represent separate software processes, or other recursive
encapsulated systems. Distributed systems aim to remove
bottlenecks or central points of failure from a system.
Distributed computing systems have the following characteristics:
Resource sharing – A distributed system can share hardware,
software, or data
Simultaneous processing – Multiple machines can process the
same function simultaneously
Scalability – The computing and processing capacity can scale up
as needed when extended to additional machines
Error detection – Failures can be more easily detected
Transparency – A node can access and communicate with other
nodes in the system