orbitdb / field-manual

The Offical User's Guide to OrbitDB
210 stars 44 forks source link

Book Outline #1

Closed aphelionz closed 5 years ago

aphelionz commented 5 years ago

This issue is the scratch pad for the outline and basis for discussion. Feel free to comment here to leave feedback at any time.


The following is extremely subject to change


The OrbitDB Field Manual

Overall the book is written in 2nd person: You do this, you should know, etc. Parts 1 and 3 are practical, and Parts 2 and 4 are theoretical

Introduction

Preamble [1p]

Sets the book up with a very loose but catchy narrative about our distributed future and why persistent-yet-malleable data structures are necessary.

What is OrbitDB? [3p]

Non-technical description of OrbitDB. For the technical, we point to Part 1 for a tutorial and part 3 for overall architecture. Briefly touch upon IPFS context.

What can I use it for [2p]

What has already been built with OrbitDB? What can one do with a distributed database like OrbitDB? What apps should be built? Points to Part 2 for ways of thinking distributed.

A Warning to Fellow Travelers in Our Distributed Future [1p]

This is alpha software. Not just OrbitDB, all of it - an entire industry. Be careful. Points to part 4 for Advanced Topics.

Part 1: The Tutorial

An upbeat, imperative romp from empty files to complete app in under 100 pages. Need an idea for an app. Constrained entirely to JavaScript to maximize focus - no HTML or CSS

Coding instructions is interleaved with sections called What Just Happened that tell people what just happened after their code ran.

Chapter 1: Getting Started

Instantiating IPFS and OrbitDB

Chapter 2: Reading and Writing Data

Choosing a data type

Chapter 3: Peer-to-Peer Replication

Replication Overview

Replicating in the Browser

Replicating in Node.js

Replication between Browser and Node.js

Chapter 4: Identity and Permissions

Access Control

Identity Management

Security Disclosures

Part 2: Thinking Peer to Peer

What this is NOT

This is not Bittorrent

This is not Git

This is not Kazaa

Comparison to Traditional Database Systems

On Sharding

What this is

Persistence and Validation

ipfs-log

Describes CRDTs and Merkle-Dags

The stores

Keyvalue

Docstore

Counter

Log

Feed

Workshop: Creating Your Own Store

Part 4: What Next?

Appendix 1: CRDTs

Appendix 2: Mobile Ambients: A Peek Ahead