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

33 lines
1.5 KiB
Markdown

+++
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.