diff options
| author | Xe Iaso <me@xeiaso.net> | 2023-02-23 16:20:57 -0500 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2023-02-23 16:20:57 -0500 |
| commit | 9afc37eaed75ad4cf60302be8494303bb4db3fcc (patch) | |
| tree | 3dbd6a596d6f4f457e32cefaf7e6974e4e662bf6 /cmd/xedn/doc/README.md | |
| parent | 5be5a8fd26bf2318201652872a42e68618f87510 (diff) | |
| download | x-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.md | 28 |
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. + |
