📄️ Hypercore Protocol
The Hypercore Protocol is the technical foundation of the Dat project and the primary implementation of its protocols. It is a collection of modules written in JavaScript that run on the Node.js runtime.
📄️ Kappa Architecture
Sonar follows a design oftenly labeled the Kappa architecture. Its basic concept is that each user has a local database into which data from several single-writer logs are aggregated. Our JavaScript implementation is kappa-core plus an emerging set of modules for different types of views (roughly comparable to database tables in that they usually aggregate append-only data e.g. into key-value stores with support for conflict resolution primitives. This ecosystem is developent by different projects that are based around sets of Hypercores, e.g. Cabal and Mapeo and peermaps. Currently, there's ways being developed to nicely deal with these sets of hypercores, asking peers for interesting parts, and replicating those efficiently.
📄️ Sonar architecture
This page documents the core Sonar engine. It is implemented mostly in the sonar-core and sonar-db packages.
📄️ Tantivy
Tantivy is a full-text search engine written in Rust. In Sonar, we integrate Tantivy with our peer-to-peer database through a sonar-tantivy. It uses tantivy as a library, and runs as a standalone binary which is started by a Node.js module.