foxcpp / foxcpp/maddy

Implement wildduck's storage architecture for efficiency and scalability

Abierto
#291 5 comentarios 0 reacciones 0 asignados Ver en GitHub
new feature
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.