foxcpp / foxcpp/maddy

Implement wildduck's storage architecture for efficiency and scalability

Open
#291 5 comments 0 reactions 0 assignees View on GitHub
new feature
Dominant language
Go
Stars
6.1k
Forks
327
PR merge metrics
No merged PRs in 30d

Description

# Use case

What problem you are trying to solve?
Maildir is less space efficient and less scalable than a clustered database as a mail store.

Note alternatives you considered and why they are not useful.
I've tried using Maildir over an S3 backend, but performance can be an issue.

# Your idea for a solution
Compress messages, deduplicate attachments and store in a clustered database like MongoDB.

How your solution would work in general?
[Wildduck](https://docs.wildduck.email) stores messages and attachments in MongoDB. It compresses data and deduplicates attachments, greatly reducing storage requirements and allowing us to easily scale our deployments. I currently use it in production and works great.

- [X] I'm willing to help with the implementation

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.