github.com/authzed/spicedb@v1.32.1-0.20240520085336-ebda56537386/internal/datastore/postgres/README.md (about) 1 # PostgreSQL Datastore 2 3 **Minimum required version** can be found here defined as `MinimumSupportedPostgresVersion` in [version.go](version/version.go) 4 5 PostgreSQL is a traditional relational database management system that is very popular. 6 This datastore implementation allows you to use a PostgreSQL database as the backing durable storage for SpiceDB. 7 Recommended usage: when you are comfortable with having all permissions data stored in a single region. 8 9 ## Configuration 10 11 `track_commit_timestamp` must be set to `on` for the Watch API to be enabled. 12 13 ## Implementation Caveats 14 15 While PostgreSQL uses MVCC to implement its ACID properties, it doesn't offer users the ability to read dirty data without adding an extension. 16 For that reason, the PostgreSQL datastore driver implements a second layer of MVCC where we can manually control all writes to the database. 17 This allows us to track all revisions of the database explicitly and perform point-in-time snapshot queries.