Decentralization Types
When people talk about software decentralization, there are actually three separate axes of centralization/decentralization that they may be talking about. While in some cases it is difficult to see how you can have one without the other, in general, they are quite independent of each other. The axes are as follows:
- Architectural (de)centralization — how many physical computers is a system made up of? How many of those computers can it tolerate breaking down at any single time?
- Political (de)centralization — how many individuals or organizations ultimately control the computers that the system is made up of?
- Logical (de)centralization — does the interface and data structures that the system presents and maintains look more like a single monolithic object, or an amorphous swarm? One simple heuristic is: if you cut the system in half, including both providers and users, will both halves continue to fully operate as independent units
Distributed vs Decentralized
- distribution refers to differences in location
- centralization and decentralization refer to levels of control
A distributed system is a model in which components located on networked computers communicate and coordinate their actions by passing messages
A decentralized system is also a distributed system
A key point is that decentralization has no central point of control
Technical Terminology
- decentralized systems - systems where components operate on local information to accomplish goals, rather than the result of a central ordering influence (this is about decision locality)
- federated systems - a cohesive unit formed of smaller subunits that collaborate to form the whole, but which retain significant local autonomy. (this is about retaining some autonomy)
- distributed systems - a system in which computation is distributed across components, which communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal. (this is about communication and message passing)
- peer-to-peer or peering systems - systems in which a set of peers are equally privileged, equipotent participants in collaborative goals. (this is about equipotency)