Instead of handling transactions in the store, handle it in xapian-db.
Make the code a bit more natural / cleaner-out
Handle transaction automatically (with a batch-size) and add some RAII
Transaction object, which makes all database interaction transactable
for the duration. So, no more need for explicit parameters to
add_message while indexing.
XapianDb is a fairly thing wrapper around Xapian, which handles locking,
exception handling and some tracking.
On top of that, Config add a configuration database for type /
introspectable configuration info.