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.

01 / Postgres

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.

02 / Provisioning

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.

03 / Volumes

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.

04 / Limits

Know what you are buying

Database appliances suit development, staging, and small production. They are not yet tuned for very large datasets or high write volume. A full-cluster backup captures Postgres, MariaDB, and MongoDB data; Redis, Kafka, and ClickHouse keep data on volumes that a backup does not include, so plan those separately. Details are on the Operate page.

Next

Run the whole thing

High availability, adding hosts, updates, and backups — from the operator's chair.