This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-08-11
Channels
- # announcements (2)
- # beginners (30)
- # biff (6)
- # calva (4)
- # cider (4)
- # clj-yaml (3)
- # clojure (14)
- # clojure-europe (43)
- # clojure-nl (8)
- # clojure-norway (34)
- # clojure-uk (2)
- # clojurescript (11)
- # clr (2)
- # conjure (3)
- # cursive (1)
- # datomic (18)
- # helix (1)
- # humbleui (6)
- # hyperfiddle (110)
- # java (25)
- # kaocha (2)
- # lsp (29)
- # missionary (7)
- # off-topic (9)
- # pathom (106)
- # polylith (27)
- # rdf (12)
- # re-frame (9)
- # releases (4)
- # spacemacs (2)
- # tools-build (4)
- # tools-deps (6)
I've just updated the Roadmap section of the https://biffweb.com/docs/library/. I'm all settled into my new job now and it looks like I'll still be able to get in 4-6 hours a week on open-source, depending on how early my kids fall asleep 🙂 . I'm planning to spend half the time on chugging through that roadmap and the other half writing code. On the code side it's basically: 1. Knock out some of https://github.com/jacobobryant/biff/issues + take care of some other ones that are in my personal todo list. I estimate this taking a few weeks? 2. Ton of work on platypub 3. Make Yakread open-source
The proximate answer is that I prefer using xtdb myself, and that's the most important factor I consider when deciding what things to use/do in Biff (as opposed to E.g. using Postgres because more people are familiar with it). Some of the reasons I like xt: • datalog queries are often more compact than the equivalent sql (mainly when you're joining across tables/document types) • you can add schema without having to run a migration--migrations are only needed for changing existing data, which is rare • Clojure ergonomics: you can put plain hash maps in and get them back out without having some kind of serialization layer in between • immutability/history: the database maintains a history of every document, which has a handful of benefits. it also means that reads can be very fast, since data can be cached/indexed on all your web servers/machines. all that being said, I am aware that a lot of people are happy with Postgres and would prefer to just use that, hence the how-to guide. I would like to also provide more documentation around xt to help people get going quickly with it. E.g. some type of "crash course" like the reference docs already have for reitit and malli, and an essay that describes the benefits of xt in more detail.
Im using postgres as a data store… not sure how it compares to just using the file system though
ah yes, that's recommended for prod. (just to be explicit, in my message above I'm talking about using xtdb (with or without postgres as the underlying storage backend) vs. directly using postgres from your application code). If you're using managed postgres for the storage backend in prod, then backups are taken care of for you. The other big difference is that you can have multiple servers that all connect to the the same postgres storage backend. If you use the filesystem as the storage backend, then you're limited to a single machine, and you have to handle backups on your own. I actually use the filesystem backend in prod for one of my apps and rely on DigitalOcean's weekly disk backups, and honestly that probably would be fine for most people using Biff, but I still prefer to have postgres be the "recommended" storage backend for prod so that people hopefully understand the tradeoffs if they do decide to use filesystem in prod.