Learning Objectives – after this chapter you will be able to:
  • Define a distributed system and a distributed application.
  • List the key characteristics and challenges of distributed systems.
  • Explain the CAP theorem at a basic level.
  • Compare centralized, decentralized and distributed architectures and place blockchain among them.
Distributed Applications
  • A distributed application is software whose computation is spread across several components running on different computers. The components communicate and coordinate their actions by passing messages over a network.
  • The components work together to achieve a common goal, and to the user the whole system appears as one application.
  • Some distributed application examples are:
    • CDN – Content Delivery Networks that serve web content from servers close to the user.
    • Cloud platforms such as AWS – Amazon Web Services – and cloud instances that run one service on many machines.
    • Large web services such as search engines, social networks and video streaming, which run on thousands of servers.
  • Note: these examples are distributed but still centrally controlled by one company.
Avoid confusion: the short form “DApp” is used both for distributed applications and for decentralized applications. In blockchain courses, dApp almost always means a decentralized application (Chapter 4).
Characteristics of Distributed Systems
CharacteristicMeaning
ConcurrencyMany components execute at the same time and may access shared resources.
No global clockEach machine has its own clock, so ordering events requires coordination.
Independent failuresOne machine or link can fail while others keep running; the system must tolerate this.
ScalabilityCapacity can be increased by adding more machines (horizontal scaling).
TransparencyUsers see a single system and do not need to know where each component runs.
ReplicationData is copied on multiple machines for availability and fault tolerance.
The CAP Theorem (Basic Idea)

The CAP theorem states that when a network partition (communication break) happens, a distributed data store must choose between:

  • Consistency (C) – every read returns the most recent write, and
  • Availability (A) – every request still receives a response,

while still tolerating the Partition (P). It cannot guarantee both C and A during a partition. Public blockchains generally favour availability and reach consistency over time as blocks are confirmed (often called eventual or probabilistic consistency).

Centralized vs Decentralized vs Distributed
AspectCentralizedDecentralizedDistributed
ControlOne authoritySeveral independent authorities, none in complete controlSpread over all participating nodes
Failure impactWhole system failsOnly part of the network is affectedSystem keeps running if some nodes fail
Data locationOne placeSeveral hubsCopies on many nodes
TrustTrust the ownerTrust shared among partiesTrust in protocol and replication
ExamplesSingle bank databaseFederated systemsCloud clusters, CDNs, P2P networks

Where does blockchain fit? A public blockchain is both distributed (data and computation are on many nodes) and decentralized (no single owner controls those nodes). A cloud application is distributed but not decentralized.

Key Takeaways
  • Distributed = many machines cooperating by messages; it says nothing about who controls them.
  • Distributed systems face concurrency, clock and partial-failure challenges (CAP theorem).
  • Public blockchains are distributed and decentralized.
Question / Answer (15 questions)

Answer : A distributed application is software whose components run on multiple networked computers and coordinate by passing messages to achieve a common goal, while appearing to users as a single application.

Answer : Content Delivery Networks (CDNs), cloud services such as Amazon Web Services, and large web platforms such as search engines or video-streaming services that run on thousands of servers.

Answer : No. A cloud application may run on thousands of machines (distributed) but all of them are controlled by one company (centralized control). Decentralization requires that no single party controls the system.

Answer : It is used for both distributed applications and decentralized applications. In blockchain contexts, dApp usually means a decentralized application built on smart contracts.

Answer : Each machine keeps its own clock, and clocks drift apart. There is no single shared time, so the system must use coordination techniques to agree on the order of events – a problem blockchains solve by ordering transactions into blocks.

Answer : Individual machines or network links can fail while the rest of the system keeps working. A distributed system must detect and tolerate these partial failures.

Answer : During a network partition, a distributed data store cannot simultaneously guarantee both consistency (every read sees the latest write) and availability (every request gets a response); it must sacrifice one of them.

Answer : They usually favour availability and partition tolerance, and reach agreement over time as more blocks are added – often described as eventual or probabilistic consistency.

Answer : Replication means keeping copies of the same data on multiple machines. It improves availability (data is still reachable if one machine fails) and fault tolerance. A blockchain replicates its full ledger on every full node.

Answer : Increasing capacity by adding more machines to a system, rather than upgrading a single machine (vertical scaling). Distributed systems are designed to scale horizontally.

Answer : Its data and computation are spread across many nodes (distributed), and those nodes are run by independent participants with no single controlling authority (decentralized).

Answer : By sending messages over a network, for example using remote procedure calls (RPC), HTTP APIs or message queues.

Answer : In a centralized system, failure of the central server stops the whole service. In a distributed system with replication, the remaining nodes continue to serve requests when some nodes fail.

Answer : It means hiding the distribution from users: they see a single coherent system without needing to know where data is stored or which machine serves them.

Answer : It lets independent nodes agree on a single value or order of events even when messages are delayed and some nodes fail or behave maliciously. Blockchains use consensus to agree on the next block.
MCQ Test : Check Your Understanding (5 questions)

Select an option and press Check Answer, or answer all questions and press Submit Test to see your score. Each answer comes with an explanation.

Q1. Components of a distributed application coordinate mainly by:

Show Answer

Correct Answer : B. Passing messages over a network
Distributed components run on different machines and coordinate through messages.

Q2. A cloud service run by one company on 5,000 servers is:

Show Answer

Correct Answer : A. Distributed but centrally controlled
Many machines make it distributed; single-company control makes it centralized.

Q3. According to the CAP theorem, during a network partition a system must choose between:

Show Answer

Correct Answer : D. Consistency and Availability
CAP says that under a partition you cannot guarantee both consistency and availability.

Q4. Which statement about a public blockchain is correct?

Show Answer

Correct Answer : C. It is both distributed and decentralized
Its data is on many nodes and no single party controls those nodes.

Q5. Keeping copies of the same data on multiple machines is called:

Show Answer

Correct Answer : A. Replication
Replication improves availability and fault tolerance.

Bibliography/References

The notes, questions and MCQs on this page are original explanations written for this course. The works listed below were consulted and are cited for attribution and further reading. Product names, logos and trademarks belong to their respective owners. Short quotations, where used, are marked and attributed.

  1. Investopedia. (n.d.). Distributed Applications (dApps). https://www.investopedia.com/terms/d/distributed-applications-apps.asp
  2. van Steen, M., & Tanenbaum, A. S. (2017). Distributed Systems (3rd ed.). distributed-systems.net. https://www.distributed-systems.net/
  3. Gilbert, S., & Lynch, N. (2002). Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. ACM SIGACT News, 33(2), 51–59. https://doi.org/10.1145/564585.564601
  4. Lamport, L., Shostak, R., & Pease, M. (1982). The Byzantine Generals Problem. ACM Transactions on Programming Languages and Systems, 4(3), 382–401. https://doi.org/10.1145/357172.357176
  5. Yaga, D., Mell, P., Roby, N., & Scarfone, K. (2018). Blockchain Technology Overview (NISTIR 8202). National Institute of Standards and Technology. https://doi.org/10.6028/NIST.IR.8202