Skip to content

Latest commit

 

History

History
32 lines (23 loc) · 1.12 KB

ARCHITECTURE.md

File metadata and controls

32 lines (23 loc) · 1.12 KB

WebFS Architecture

WebFS depends on two interfaces: Stores and Cells.

Stores

Stores are content-addressed stores. They support two fundamental operations

Post(data) -> hash
Get(hash) -> data

The standard interface is defined by the cadata package from the go-state library.

Store implementations can be found in pkg/stores/

Cells

Cells in WebFS are like cells in a spreadsheet, a holder of a data which can change over time. The compare-and-swap operation (CAS(current, next)) allows writes which will be synchronized with other WebFS instances writing to the same cell.

Cells provide two fundamental operations:

Get() -> current
CAS(prev, next []byte) -> current

The standard interface is defined by the cells package from the go-state library.

Cell implementations can be found in pkg/cells/

Formats

WebFS uses GotFS from the Got version control system for storing file data.