Data
Datastores that live with the app
Provision a database with one command and Flynn injects the connection details into your app. Postgres is built in; five more engines install as plugins.
PostgreSQL 16, built in and highly available
Postgres is part of Flynn — the platform stores its own state in it, and your apps can use it from day one. On a three-node cluster it runs as a primary with a synchronous replica and an asynchronous chain, so a primary failure promotes a replica without losing acknowledged writes or splitting the brain.
PostGIS, pgRouting, and TimescaleDB are available. Open a console, dump, or restore from the CLI without installing a local client.
$ flynn resource:add postgres $ flynn pg:psql
Catalog
Six engines, honestly described
Every engine below provisions the same way and injects its connection details into your app. Availability differs, so here is exactly what each one gives you.
| Engine | Version | Topology on three nodes | Availability | Good for |
|---|---|---|---|---|
| PostgreSQL Included | 16 | Primary + sync replica + async chain | Automatic failover | Primary application data |
| MariaDB Plugin | 10.11 LTS | Primary + sync replica + async chain | Automatic failover | MySQL-compatible applications |
| MongoDB Plugin | 7.0 | Three-member replica set | Automatic failover | Document data |
| Redis Plugin | Ubuntu 24.04 package | Single instance | No failover; data persists on a volume but is not in cluster backups | Caching, sessions, development |
| Kafka Plugin | 3.9 (KRaft) | Three brokers, no ZooKeeper | Topics replicate across brokers when created with a replication factor | Event streams, queues |
| ClickHouse Plugin | With ClickHouse Keeper | Three replicas | Replicated databases and table engines | Analytics and reporting |
On a single-node cluster every engine runs one instance. When a third host joins, Postgres, MariaDB, and MongoDB promote themselves to their highly available layout. MariaDB, MongoDB, Redis, Kafka, and ClickHouse speak TLS to your apps using a certificate authority generated by the cluster.
One command, credentials injected
Provisioning a datastore creates a dedicated database and user for the app and writes the connection URL into the app's environment as a new release. Each Postgres role can connect only to its own database, so one app cannot read another's data even with a stolen URL.
Need to reach a database from outside the cluster — a BI tool, a laptop? Expose it on a TLS-protected TCP route with a stable hostname. Have an existing database elsewhere? Pass its URL in as configuration; Flynn does not mind.
Disk that survives a restart
Most processes should stay stateless. When one cannot, declare a volume on that process type and Flynn attaches persistent, ZFS-backed storage that is still there after the process restarts or is rescheduled. List, inspect, and decommission volumes from the CLI.
Know what you are buying
Next
Run the whole thing
High availability, adding hosts, updates, and backups — from the operator's chair.