@ile queries and, in general, having collections is a good way to separate document types. Right now there are discussions on how to add queries to Swarm. Thoughts are: distinguish somehow same data types in key-value, put their states to separate database with collections/queries (Mongo, SQL or something), make queries to grab document ids, subscribe data by ids from key-value storage. It's not so straightforward as it's done in Amelisa, where state and oplog are stored in same storage (this also makes implementation of offline queries very simple). But in Amelisa oplog and state are stored in same document. It's not a problem with object operations, where oplog cleanup itself and it's length will be about document fields count. But for other types (array, string, number) there is no way to cleanup oplog naturally, so we need to clean it based on date (ops older than 1 day, for example) or oplog length. In general, I think both approaches have it's own pros and cons. And probably Amelisa will adapt ideas from Swarm or vice versa in the future.