Data Durability of Fly Postgres App

Currently we have a Fly Postgres app with only one instance. Due to the budget constraint we are not using 3 instance HA cluster.

We have a few questions:

  1. If the Postgres app crashes due to a failure in the data center, e.g. a disk failure, will the snapshots still be available? Are the snapshots stored in a different place/zone/region? What’s the reliability of these snapshots?
  2. If we create a read replica for the Postgres app in a different region, does it increase the reliability of the snapshots?
  3. Or do you advice us to keep the read replica in the same region as the primary? I guess the read replica will be placed in a different zone of the same region. How much does it help with the data durability?

We are primarily concerned about the data durability of our Postgres app. Please advice.

I haven’t looked at the following much myself, :turtle:, but you might find that WAL archiving to Tigris strikes a better cost balance:

https://community.fly.io/t/fresh-produce-enhanced-wal-archiving-and-remote-restores/20827

At a glance, I don’t see any mention of an HA cluster being a requirement—although there is an extra RAM threshold.


In general, volume snapshots shouldn’t be considered the main backup strategy, but rather more of a safety net…

1 Like

Added storage, tigris

  1. No idea, sorry.
  2. Yes. A replica will at least keep the last-ish version of the data.
  3. A replica in the same region will still help (but it’s always more probable to lose a region than to lose two regions).

Whichever option you choose, you still need proper backups. @mayailurus mentioned WAL archiving, which is a great option.

Depending on your availability needs and recovery objective you might find 1 instance with WAL archiving a good solution: you might suffer some unavailability, but with just a bit of luck (and monitoring ;-)) you won’t lose more than 2-5 times your archive_timeout.

2 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.