Scott Francis (http://www.kurokoproject.com/about/) (@mechazoidal (https://twitter.com/mechazoidal)) will be guiding us through two papers on the Styx Architecture. The Styx Architecture for Distributed Systems (http://doc.cat-v.org/inferno/4th_edition/styx) and Styx-on-a-Brick (http://doc.cat-v.org/inferno/4th_edition/styx-on-a-brick/) invented by Rob Pike (https://research.google.com/pubs/r.html) (he invented the Go language (https://golang.org/)) and Dennis Ritchie (https://www.bell-labs.com/usr/dmr/www/index.html) (he co-invented the C language (https://archive.org/details/TheCProgrammingLanguageFirstEdition)).
The protocol is effectively 9P (https://en.wikipedia.org/wiki/9P_(protocol)) (specifically 9P2000). Pike and Ritchie renamed the protocol after the papers were written to unify with Plan 9 (http://www.plan9.bell-labs.com/plan9/index.html).
Here is the abstract to whet your appetite:
A distributed system is constructed from a set of relatively independent components that form a unified, but geographically and functionally diverse entity. Examples include networked operating systems, Internet services, the national telephone switching system, and in general all the technology using today’s diverse digital networks. Nevertheless, distributed systems remain difficult to design, build, and maintain, primarily because of the lack of a clean, perspicuous interconnection model for the components.
Our experience with two distributed operating systems, Plan 9 and Inferno, encourages us to propose such a model. These systems depend on, advocate, and generally push to the limit a fruitful idea: to present their resources as files in a hierarchical name space. The objects appearing as files may represent stored data, but may also be devices, dynamic information sources, interfaces to services, and control points. The approach unifies and provides basic naming, structuring, and access control mechanisms for all system resources. A simple underlying network protocol, Styx, forms the core of the architecture by presenting a common language for communication within the system.
Even within non-distributed systems, the presentation of services as files advantageously extends a familiar scheme for naming, classifying, and connecting to system resources. More important, the approach provides a natural way to build distributed systems, by using well-known technology for attaching remote file systems. If resources are represented as files, and there are remote file systems, one has a distributed system: resources available in one place are usable from another.
Make some noise here or in #seattle at https://papersweloveslack.herokuapp.com/. It's going to be a good one. See you there!