So there are three kind of distinct points: - Caching / storing data from matrix - maintaining metadata about messages for incremental updates, and media - Maintaining a search index With the Rust plan I have, caching data from Matrix would be handled entirely by the SDK. Tantivy would be used as the search index, and would also be perfectly sufficient for maintaining metadata. For python, the SDK doesn't handle caching. I'm also not really aware of a useful equivalent to tantivy. Whatever database we used would be handling all of that, unless we set up ElasticSearch or something, which I would prefer to avoid.