Email Domain Replication System Notes


Goals

Architecture

See the diagram for a visual description of how the pieces fit together.

Development Plan

Development should follow a "zero, one, any" plan -- implementation should always either disallow a feature (zero), allow the feature in only one mode or instance (one), or allow totally arbitrary use of that feature (any). Development of a feature that is required to by "any" should if possible proceed from the "zero" and "one" stages first.
  1. Single-server model (zero remotes)
  2. Two-server model (one remote)
    1. Implement proxy server that knows about one local and one remote
    2. Add public/private keys to remote proxy agents
    3. Full local protocol
  3. Multiple-server model (any remotes)
    1. Simple multiple-server
    2. Implement partial domain replication
    3. Implement spanning-tree algorithms into proxy

Definitions

Redo Log

Unresolved Issues and Future Ideas