I’m curious how the search engine is going to scale. Every time things like that are reinvented instead of using something that already exists, like, say, ElasticSearch, I will be skeptical. Then I looked at the implementation, and it begins with "take all the message-ids you know… then do a bunch of set intersects on it". Um, seriously? Do you have some stats on runtime behavior with, say, 250k messages?