Implement wildduck's storage architecture for efficiency and scalability
- Lenguaje dominante
- Go
- Estrellas
- 6.1k
- Forks
- 327
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
# 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
Guía de contribución
Línea de trabajo
No se nombran archivos, pruebas ni puntos de entrada. Empieza por localizar la implementación actual del almacenamiento Maildir y leer la arquitectura de Wildduck enlazada; después, determina los límites de la migración y del almacenamiento. Se considera terminado cuando los mensajes y los archivos adjuntos utilizan el enfoque propuesto de compresión y deduplicación basado en MongoDB, y existe un plan de escalabilidad acordado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- go, mongodb
- Área
- backend, databases
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100