Hi,
We have several customers in Zimbra with multi-terabyte mailbox stores. Some of them uses HSM (Hierarchical Storage Management) — the ability to automatically move message blobs older than a configurable threshold (e.g., 6 months) from primary fast storage to a secondary cheaper storage tier (spinning disk, NAS, or object storage), while keeping indexes and metadata on the primary store for fast JMAP/IMAP search.
The key properties of Zimbra HSM that we’d like to replicate:
-
Policy-based tiering: messages older than X days/months are moved to secondary store
-
Transparent to users: opening an old message fetches it from the secondary store without any special user action
-
Fast search preserved: metadata and indexes remain on fast local storage regardless of where the blob lives
-
Configurable per-domain or globally
What we’ve found so far:
Stalwart’s architecture (separate blob store, data store, and search store) seems well-positioned to support this. The S3-compatible blob store already exists, but it applies to all messages from day
one — not just older ones.
We considered using S3 lifecycle policies to transition blobs to Glacier after a period, but latency on retrieval makes this impractical for interactive use.
Questions:
-
Is there a planned or existing mechanism to route new message blobs to a local/fast store and migrate them to an S3/object store after a configurable age?
-
Does the Enterprise edition include any archiving or storage tiering features beyond what’s in the community edition?
-
If this is not on the roadmap, would a pull request implementing a tiering policy be welcome?
This would be a significant feature for organizations migrating from Zimbra/Exchange with large legacy stores who need cost-effective long-term retention.