Definitely use DOs not D1 if it's per
Definitely use DOs not D1 if it's per user. You will struggle with binding otherwise. The nice thing about going the DO route also is that you can encapsulate everything that your client code needs into methods in the DO. For now, they can use the SQLite 10GB DB inside of the DO. You can monitor and see how fast they are growing. If one of your users reaches 5GB in a year, then you'll have a year to migrate the storage part somewhere else, or figure out how to shard. I think you'll be surprised how far 10GB goes. One bad thing about 5GG+ dbs in DOs though is that cold starts can be 1+ seconds if Cloudflare has to move the db file to the machine where the DO runs.
