33 lines
1.5 KiB
Markdown
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.
|