···5353 match {
5454 expression {header.User-Agent}.startsWith("Mozilla/5.0")
5555 }
5656- events 2
5757- window 15s
5656+ events 1000
5757+ window 30s
5858 log_key true
5959 }
6060 }
···7474 cache
7575 }
7676 ```
7777+ well... the gateway fell over IMMEDIATELY with like 2 req/sec from deletions, with that ^^ config. for now i removed everything except the reverse proxy config + normal caddy metrics and it's running fine on vanilla caddy. i did try reducing the rate-limiting configs to a single, fixed-key global limit but it still ate all the ram and died. maybe badger w/ the cache config was still a problem. maybe it would have been ok on a machine with more than 1GB mem.
7878+7979+8080+ alternative proxies:
8181+8282+ - nginx. i should probably just use this. acme-client is a piece of cake to set up, and i know how to configure it.
8383+ - haproxy. also kind of familiar, it's old and stable. no idea how it handle low-mem (our 1gb) vs nginx.
8484+ - sozu. popular rust thing, fast. doesn't have rate-limiting or cache feature?
8585+ - rpxy. like caddy (auto-tls) but in rust and actually fast? has an "experimental" cache feature. but the cache feature looks good.
8686+ - rama. build-your-own proxy. not sure that it has both cache and limiter in their standard features?
8787+ - pingora. build-your-own cloudflare, so like, probably stable. has tools for cache and limiting. low-mem...?
8888+ - cache stuff in pingora seems a little... hit and miss (byeeeee). only a test impl for Storage for the main cache feature?
8989+ - but the rate-limiter has a guide: https://github.com/cloudflare/pingora/blob/main/docs/user_guide/rate_limiter.md
9090+9191+ what i want is low-resource reverse proxy with built-in rate-limiting and caching. but maybe cache (and/or ratelimiting) could be external to the reverse proxy
9292+ - varnish is a dedicated cache. has https://github.com/varnish/varnish-modules/blob/master/src/vmod_vsthrottle.vcc
9393+ - apache traffic control has experimental rate-limiting plugins
779478957996- victoriametrics
+1
link_aggregator/Cargo.toml
···1818metrics-process = "2.4.0"
1919rocksdb = { version = "0.23.0", optional = true }
2020serde = { version = "1.0.215", features = ["derive"] }
2121+serde_with = { version = "3.12.0", features = ["hex"] }
2122tinyjson = "2.5.1"
2223tokio-util = "0.7.13"
2324zstd = "0.13.2"
+9-6
link_aggregator/readme.md
···7474- [x] move ownership of canonical seq to an owned non-atomic
7575- [x] custom path for db storage
7676- [x] api server to look up backlink count
7777-- [ ] other useful endpoints for the api server
7777+- [~] other useful endpoints for the api server
7878 - [x] show all nisd/path links to target
7979- - [ ] get backlinking dids
8080- - [ ] paging for all backlinking dids
8181- - [ ] get count + most recent dids
7979+ - [x] get backlinking dids
8080+ - [x] paging for all backlinking dids
8181+ - [x] get count + most recent dids
8282 - [ ] get count with any dids from provided set
8383- [~] write this readme
8484- [?] fix it sometimes getting stuck
···100100- [ ] deadletter queue of some kind for failed db writes
101101 - [ ] also for valid json that was rejected?
102102- [x] get it running on raspi
103103-- [~] get an estimate of disk usage per day after a few days of running
103103+- [x] get an estimate of disk usage per day after a few days of running
104104+ - very close to 1GB with data model before adding rkeys to linkers + fixing paths
104105- [ ] make the did_init check only happen on test config (or remove it)
105106- [ ] actual error types (thiserror?) for lib-ish code
106107- [ ] clean up the main readme
···116117- [ ] put delete-account tasks into a separate (persisted?) task queue for the writer so it can work on them incrementally.
117118118119data fixes
119119-- [ ] add rkey to linkers 🤦♀️
120120+- [x] add rkey to linkers 🤦♀️
121121+- [x] don't remove deleted links from the reverse records -- null them out. this will keep things stable for paging.
122122+- [x] don't show deactivated accounts in link responses
120123- [ ] links:
121124 - [ ] pull `$type`/`type` from object children of arrays (distinguish replies, quotes, etc)
122125 - [ ] actually define the format (deal with in-band dots etc)