Message archiving

There are a various reasons a server administrator might want to enable archiving of user messages. Prosody has a number of modules to cater for different setups. The table below gives an overview of the available modules, all of which are available from the prosody-modules project.

Module comparison

Module Protocol Storage Notes
mod_message_logging None Text files Recommended for archiving for compliance/auditing purposes.
mod_log_messages_sql None External SQL storage Recommended alternative to mod_message_logging when logging to SQL is a requirement.
mod_log_messages None Text files Inefficient, for example purposes only.
mod_mam XEP-0313 Internal archive storage In-memory unless coupled with an appropriate storage module.
mod_archive XEP-0136 Internal object storage Inefficient.
mod_mam_archive XEP-0136 Internal archive storage Unmaintained community module, may be buggy. For legacy clients that do not support XEP-0313.

Which protocol?

If you are archiving messages for compliance/auditing purposes, you should choose one of the modules with no protocol associated with them. These log to files or a database, which can be backed up or rotated as necessary.

Alternatively if you want users to be able to access and manage their archive, choose a module with either XEP-0136 or XEP-0313 support. The user's client must implement the same protocol to be able to access the archive.