The other thing I did on Tuesday was get help from Jessica McKellar on getting started writing a daemon that notifies of changes to files. This can be done easily using Twisted, which supports the linux inotify API. I am excited about this for a couple of reasons.
First, I've been wanting to use Twisted for a long time, just because I like the aesthetics of it. However, none of my previous projects needed its functionality. Protagonist, on the other hand, could make good use of it, because it is easier to repair consistency of the database through notification of changes, than through scanning the whole database. Moreover, it can be done immediately in response to such changes. A repair process (a feature I would also like to provide) would have to be run only periodically, and would therefore leave things broken between runs.
Second, I found that inotify has some surprising-to-me behaviour that I am eager to explore. Specifically, inotify appears to be pathname triggered, rather than inode triggered, judging by what happens to hard and soft links. I intend to explore this more today. Digging into kernel functions is something I have barely scratched before, and it makes me feel closer to the machine.