]> Sergey Matveev's repositories - public-inbox.git/blobdiff - Documentation/design_notes.txt
update copyright headers and email addresses
[public-inbox.git] / Documentation / design_notes.txt
index f81a616f9fa4ce8dd6dd23c9b0273197e21d3478..d96c8d8247cbdf4654ebb8157d89492522ffbe65 100644 (file)
@@ -1,5 +1,5 @@
-Design notes
-------------
+public-inbox design notes
+-------------------------
 
 Challenges to running normal mailing lists
 ------------------------------------------
@@ -14,7 +14,6 @@ confused users who cannot unsubscribe.
 
 Use existing infrastructure
 ---------------------------
-
 * public-inbox can coexist with existing mailing lists, any subscriber
   to the existing mailing list can begin delivering messages to
   public-inbox-mda(1)
@@ -35,7 +34,6 @@ Use existing infrastructure
 
 Why email?
 ----------
-
 * Freedom from proprietary services, tools and APIs.  Communicating with
   developers and users of Free Software should not rely on proprietary
   tools or services.
@@ -53,9 +51,9 @@ Why email?
   There is no need to ask the NSA for backups of your mail archives :)
 
 * git, one of the most widely-used version control systems, includes many
-  tools for for email: git-format-patch(1), git-send-email(1), git-am(1).
-  Furthermore, the development of git itself is based on the git mailing
-  list.
+  tools for for email, including: git-format-patch(1), git-send-email(1),
+  git-am(1), git-imap-send(1).  Furthermore, the development of git itself
+  is based on the git mailing list.
 
 * Email is already the de-facto form of communication in many Free Software
   communities..
@@ -66,7 +64,6 @@ Why email?
 
 Why git?
 --------
-
 * git is distributed and robust while being both fast and
   space-efficient with text data.  NNTP was considered, but does not
   support delta-compression and places no guarantees on data/transport
@@ -78,7 +75,6 @@ Why git?
 
 Why perl 5?
 -----------
-
 * Perl 5 is widely available on modern *nix systems with good a history
   of backwards and forward compatibility.
 
@@ -87,7 +83,6 @@ Why perl 5?
 
 Laziness
 --------
-
 * Stick to dependencies available in Debian main, this should make it
   easier for potential users to install, and easier for distro
   maintainers to pick up.
@@ -115,7 +110,6 @@ Laziness
 
 Web notes
 ---------
-
 * Getting users to install/run ssoma (or any new tool) is difficult.
   The web views must be easily read/cache/mirror-able.
 
@@ -128,7 +122,27 @@ Web notes
 * Raw text endpoint allows users to write client-side JS endpoints
   without hosting the data themselves (or on a different server).
 
+What sucks about public-inbox
+-----------------------------
+* Lack of push notification.  On the other hand, feeds seem popular.
+
+* some (mostly GUI) mail clients cannot set In-Reply-To headers
+  properly without the original message.
+
+Scalability notes
+-----------------
+Even with shallow clone, storing the history of large/busy mailing lists
+may place much burden on subscribers and servers.  However, having a
+single (or few) refs representing the entire history of a list is good
+for small lists since it's easier to lookup a message by Message-ID, so
+we want to avoid splitting refs with independent histories.
+
+ssoma will likely grow its own builtin ref rotation system based on
+message count (not rotating at fixed time intervals).  This would
+split the histories and require O(n) lookup time based on Message-ID,
+where `n' is the number of history splits.
+
 Copyright
 ---------
-Copyright 2013, Eric Wong <normalperson@yhbt.net> and all contributors.
+Copyright 2013-2015 all contributors <meta@public-inbox.org>
 License: AGPLv3 or later <http://www.gnu.org/licenses/agpl-3.0.txt>