We use Loro for a collaborative editor with a Rust snapshotter that periodically compacts journal entries into a full snapshot. The problem is memory amplification — a ~5 MB serialized document expands to 600+ MB of RAM when loaded into LoroDoc for compaction, making it impractical in memory-constrained environments (e.g., Cloudflare Durable Objects at 128 MB).
Is there any consideration for a storage-backed mode (e.g., backed by SQLite or a trait Storage) where compaction could operate in a streaming/chunked fashion without materializing the entire document in RAM?
Thanks for the amazing work!
We use Loro for a collaborative editor with a Rust snapshotter that periodically compacts journal entries into a full snapshot. The problem is memory amplification — a ~5 MB serialized document expands to 600+ MB of RAM when loaded into LoroDoc for compaction, making it impractical in memory-constrained environments (e.g., Cloudflare Durable Objects at 128 MB).
Is there any consideration for a storage-backed mode (e.g., backed by SQLite or a trait Storage) where compaction could operate in a streaming/chunked fashion without materializing the entire document in RAM?
Thanks for the amazing work!