aerogramme.deuxfleurs.fr/content/documentation/design/_index.md

1.5 KiB

+++ title = "Concepts" weight = 40 sort_by = "weight" template = "documentation.html" +++

Goals

Highly resilient - Multiple instances of Aerogramme can been run in parallel without coordination. Multi-region support, survive datacenter failures.

Easy to operate - Transparently replicate mailbox and solve conflicts. Integrate with your LDAP server. Privacy friendly

Per-user encryption of mailboxes. Can be run as a local proxy to hide your mailbox content from the server.

Main concepts

Per-user encryption - Aerogramme can't persist data in plain text, instead its whole data model is built upon the idea that a mailbox is a series of encrypted blob. These blobs do not reveal the mailbox name, the metadata of stored emails or even the flags that have been put on them.

Continuous Mailbox Merging - As multiple instances of Aerogramme can be run simultaneously, and that's possible that 2 instances interact with the same mailbox (over Garage), each process monitors external writes for the mailbox they track and automatically do the merging in a correct way.

Modular design - Login and Mailbox storage is abstracted behind an interface: multiple implementations are thus possible.

Microservice - Aerogramme is stateless and tries to adhere as much as possible to the 12 factor app principles so it's easy to run in a cluster.