why am i so passionate about decentralization because i believe some of today s most profound problems with networked applications are caused by centralization generically a centralized political or economic system permits only one answer to a question while decentralization permits many separate agents to hold different opinions of the same matter in the specific context of software centralized variables can only contain one valid value at a time that limits us to only representing information a according to the beliefs of a single agency and b that changes more slowly than it takes to propagate nevertheless centralization is the basis for today s most popular architectural style for developing network applications client server interaction using request response communication protocols i believe these are profound limitations which we are already encountering in practice spam for example is in the eye of the beholder yet our email protocols and tools do not acknowledge the separate interests of senders and receivers slamming for another unfairly advantages the bidder with the lowest latency connection to a centralized auction server sharing ad hoc wireless networks is yet a third example of decentralized resource allocation furthermore as abstract as centralization induced failures might seem today these limits will _not_ improve as the cost of computing storage and communication bandwidth continue to plummet instead the speed of light and human independence constitute _fundamental_ limits to centralized information representation and hence centralized software architecture 