Kwiki::Community::Storage is the storage mechanism for the plugins. It uses DBD::SQLite by default but users can substitute another DBMS backend by specifying a community_dns in config.yaml (I've tested with DBD::Pg and DBD::CSV and DBD::DBM). If you want a non-SQL backend storage, you can specify a different community_storage_class to replace Kwiki::Community::Storage.
I previously implemented these features for a private branch of kwiki 0.18 and am in the process of updating them for generic use with modern Kwiki. I have a first pass at everything except the chat working and should have the chat soon. I'll set up a demo kwiki and post the preliminary code in a few days. I'd really appreciate comments, suggestions, co-authors, and generally anything anyone wants to contribute.
-- Jeff Zucker (aka jZed)
