+++ 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](@/documentation/design/per-user-encryption.md) - 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](@/documentation/internals/imap_uid.md). **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](https://12factor.net/) principles so it's easy to run in a cluster.