Hacker News new | ask | show | jobs
by substack 2251 days ago
Many projects[1][2][3][4] in the dat ecosystem use kappa-core[5] for multi-user applications on top of hypercores (the low-level append-only log used by dat). kappa-core is designed around the kappa architecture where the logs serve as the historical record and primary source of truth (so you get version control) and materialized views ingest the logs to answer application-specific queries.

Some nice properties of the kappa-core implementation of this architecture are that:

* works fully offline by default and many of the apps (especially mapeo) are designed for very offline use

* device to device replication is first-class

* you can completely rebuild the materialized views from the log data whenever your schema changes (very nice way of handling database migrations)

* there's a lot of flexibility in how you design the materialized views and an ecosystem of views on npm you can use instead of writing your own crdts

* works in the browser

There is also some progress in the ecosystem for sparse mode where content downloads from other feeds are driven by application-specific queries.

There is a kappa-core workshop[6] that covers some of the introductory topics.

[1]: https://cabal.chat/

[2]: https://mapeo.world/

[3]: https://cobox.cloud/

[4]: https://arso.xyz/

[5]: https://github.com/kappa-db/kappa-core

[6]: https://kappa-db.github.io/workshop/build/01.html