aboutsummaryrefslogtreecommitdiff
path: root/cmd/xedn/doc/README.md
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2023-02-23 16:20:57 -0500
committerXe Iaso <me@xeiaso.net>2023-02-23 16:20:57 -0500
commit9afc37eaed75ad4cf60302be8494303bb4db3fcc (patch)
tree3dbd6a596d6f4f457e32cefaf7e6974e4e662bf6 /cmd/xedn/doc/README.md
parent5be5a8fd26bf2318201652872a42e68618f87510 (diff)
downloadx-9afc37eaed75ad4cf60302be8494303bb4db3fcc.tar.xz
x-9afc37eaed75ad4cf60302be8494303bb4db3fcc.zip
bring back portable services
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd/xedn/doc/README.md')
-rw-r--r--cmd/xedn/doc/README.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/cmd/xedn/doc/README.md b/cmd/xedn/doc/README.md
new file mode 100644
index 0000000..0524702
--- /dev/null
+++ b/cmd/xedn/doc/README.md
@@ -0,0 +1,28 @@
+# XeDN
+
+Xe's CDN replacement service
+
+## Goal
+
+XeDN is a CDN replacement service. It is a tool that enables you to
+serve files from a central storage pool (such as Backblaze B2) in a
+way that caches all those files locally. This lets you put several
+instances of XeDN in different datacentres globally and then each
+instance will act as a local cache. This strategy lets you decrease
+observable latency for users.
+
+The goal of this service is to replace Cloudflare for my own uses.
+
+## Design
+
+At a high level, XeDN is a caching HTTP proxy. It caches files locally
+using [BoltDB](https://github.com/etcd-io/bbolt) and serves from that
+cache whenever possible. XeDN pulls files from its source (currently
+over HTTP, but this can be changed in the future) and aggressively
+caches them in the database. When each file is cached, it has a
+default lifetime of one week. This lifetime is extended every time a
+file is requested, hopefully making sure that each file that is
+commonly used is never requested from backend servers. This does make
+genuinely updating content hard, so users of XeDN are encouraged to
+assume that the backend is an _append-only_ store.
+