Distributed Systems

Distributed computing is a field of computer science that studies distributed systems. A distributed system is a system whose components are located on different networked computers, which then communicate and coordinate their actions by passing messages to each other. The components interact with each other in order to achieve a common goal. Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components. Examples of distributed systems vary from SOA-based systems to massively multiplayer online games to peer-to-peer applications.

A computer program that runs within a distributed system is called a distributed program (and distributed programming is the process of writing such programs). There are many different types of implementations for the message passing mechanism, including pure HTTP, RPC-like connectors and message queues.

A goal or challenge pursued by some computer scientists and practitioners in distributed systems is location transparency; however, this goal has fallen out of favor in industry. As distributed systems are a different concept from conventional non-distributed systems, the differences, such as network partitions, partial system failures, and partial upgrades, cannot simply be "papered over" by attempts at "transparency" (see CAP theorem).

Source: https://en.wikipedia.org/wiki/Distributed_computing

Position on the Adoption Curve

Presentations about Distributed Systems

CockroachDB maintainer, Co-founder & CTO @CockroachDB Peter Mattis

CockroachDB: Architecture of a Geo-Distributed SQL Database

Co-Creator DTrace, Co-Founder Fishworks Sun Microsystems, & Currently CTO @Joyent Bryan Cantrill

AMA w/ Bryan Cantril

Interviews