(2022-05-21) Brander Layered Protocols

Gordon Brander: Layered protocols. Following up on The Internet is Modular, and Compositional Components, Emergent Protocols, a few more thoughts on modularity, this time on layering:

Layering is a special form of modularity that restricts interactions between modules. A module assigned to a layer can use any of the modules in the same or in a lower layer; however, it cannot use a module belonging to a higher layer. (Barbara van Schewick, 2010)

A modular design breaks a system down into units

Layered design goes a step further, organizing modules into levels with distinct responsibilities.

Each layer solves a problem

but what’s so great about layering, anyway? Layering allows evolution to proceed at multiple speeds

*But why is it that systems tend to evolve these distinct pace layers?

The stability of the network as a platform allows innovation on top of that platform…*

Bringing it back to Subconscious, I wanted to share a few notes. This is early prototype stage stuff, so things may change, but here’s how we’re thinking about layering the stack for Subconscious multiplayer and sync.

Layer 1. IPFS

Layer 2. Noosphere: It’s sort of like RSS on top of IPFS. A pragmatic protocol for syndicating notes, knowledge graphs, and other docs.

All credit goes to cdata who has been leading design of the Noosphere protocol, and prototyping an implementation in Rust

Layer 3. Subtext, our simple markup for note-taking.

Layer 4. Subconscious ties it all together into a world-wide networked note-taking app.

Edited:    |       |    Search Twitter for discussion