Can you have two Tigris buckets in an app? - Tigris

Can you have two Tigris buckets in an app?

If I already have one bucket, my-app-bucket-1, in an app, then:

fly --app my-app storage create --name my-app-bucket-2

returns

Error: A Tigris project named my-app-bucket-1 already exists for app my-app

If I can’t have two buckets in the same Fly app, then would there be any problems/conflict with connecting both TigrisFS (for non-database files) and Litestream (for a SQLite database that’s at a different local path than the one mounted to TigrisFS) to the same bucket? Would they automatically use differently named objects within the bucket and stay out of each other’s way?

TigrisFS | Tigris Object Storage Documentation

For AI workloads, most runtimes assume data is accessible via a filesystem.

Litestream

Litestream is an open-source, real-time streaming replication tool that lets you safely run SQLite applications on a single node.

Solution

TigrisFS mainly makes the Tigris bucket available as a local mount on your machine. It wouldn’t interfere in any way. Of course, if you modify the files in the directory that Litestream is configured to use, then that would be a problem. So make sure Litestream is configured at a different path s3://BUCKETNAME/PATHNAME and the path within the bucket that you will use for non-database files are different.

I’m still learning about Litestream, and it looks like it supports different replica types, not just S3. For example, one possibility might be to replicate to a local path that’s within the TigrisFS mount, thereby ensuring that only the TigrisFS process communicates with the Tigris bucket.

Configuration File

The YAML configuration file provides a way to list databases and replicas that Litestream should manage. In addition, there are global variables that can be applied to all replicas.

The default path for the configuration file is /etc/litestream.yml.

Variable expansion By default, Litestream will perform environment variable expansion within the ...

Solution