So in the worst case (new feed) it takes 70 seconds ONCE to run a regular expression on every single post ever made, but all queries after that only need to check the new groups and latest posts (so very fast!). Cache is also stored with rkyv, with key being the blake3 hash of the filter params :)
So I can't really predict all the feeds and regexes people will build, so what I've done is create archives of all posts grouped by the first 5 letters of their TID in rkyv.org (mmap zero-copy deser) and then only ever run the queries once for every group and cache results incl. up to which group id
This works using a new, more efficient architecture which should also make refreshing existing feeds cheaper. So it will also make it possible to refresh feeds more often, resulting in near real-time updates. The only downside is that some feeds might need to be manually updated to benefit from this
If that doesn't help, keep in mind that new posts can take up to 10 minutes to appear on feeds for caching and performance reasons. This will be improved soon
Check your content language filter settings in the official Bluesky app
Oh and your username felt familiar, looks like I got some of your music on Bandcamp a few years ago :P funny coincidence
Yeah, feeds using likes data unfortunately don't work yet, I need to find a more efficient way to keep all recent likes in memory first.
It should update everything in real-time using a filtered version of the full network firehose, but there are now so many events (likes, reposts, posts, ...) per second that it can no longer keep up in real-time, there's a 30-second delay and I'll need to improve the architecture to fix that.
(2/2) the database with Bluesky data like posts or follows is not used at all. This is especially useful for very compute-heavy feeds like non-personalized RegEx ones that take long to generate, but serve rhe same posts to all users.