For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /docs/databases.md.

Supported databases

Every database Ivory supports is a plugin with two halves:

  • The cluster side — how Ivory finds the members of a cluster, tells the leader from the replicas, measures replication lag and runs operations like a switchover or failover. In Ivory's terms this is the cluster's Keeper: an HA tool such as Patroni, or the engine's own built-in replication. It is reached on the node's Keeper port.
  • The database side — the query console, saved queries and dashboards, reached on the node's Database port. For engines that manage their own replication, both ports are usually the same.

Because of that split, every cluster looks the same in Ivory — one overview, one set of operation buttons, one console — and each page below describes what that engine fills in.

DatabaseClusterStage
PostgreSQL + PatroniHigh-availability cluster with PatroniSTABLE
PostgreSQLPrimary and standby streaming replicationSTABLE
etcdRaft clusterBETA
RedisMaster and replica replicationBETA
ClickHouseReplicated clusterBETA
MongoDBReplica setBETA
ZooKeeperEnsembleBETA

STABLE is what Ivory has run against for a long time; BETA works end to end but has had less time in the field; new plugins start at ALPHA.

Operations

An operation a cluster cannot perform is simply not offered in the UI. ⏱ marks one that can also be scheduled for a later time.

ClusterOperations
PatroniSwitchover ⏱, failover, restart ⏱, reinitialise, reload, pause / resume, view and edit config
PostgreSQLFailover (promote a standby), reload, view config
etcdSwitchover (move the leader)
RedisFailover (promote a replica), view config
ClickHouseReload, view config
MongoDBFailover (step the primary down), view and edit config
ZooKeeperView config

Health and replication lag

Ivory warns about a replica whose lag passes its threshold. The threshold is Ivory's own default for that engine, not a setting of the engine itself.

ClusterReplicationLag is measured inWarning threshold
PatroniOne leaderBytes behind the leader50 MiB
PostgreSQLOne leaderBytes of WAL not yet replayed50 MiB
etcdOne leaderRaft entries behind the leader1000 entries
RedisOne leaderSeconds since the master was last heard30 s
ClickHouseEvery nodeSeconds of replication delay30 s
MongoDBOne leaderSeconds behind the primary30 s
ZooKeeperOne leaderNot measured—

Query console

ClusterConsoleBrowseRunning queriesDashboard
PatroniSQLDatabases, schemas, tablesList, cancel, kill✅
PostgreSQLSQLDatabases, schemas, tablesList, cancel, kill✅
etcdetcdctl-style commands——
RedisRedis commandsNumbered databasesList, kill clients
ClickHouseSQLDatabases, tables—✅
MongoDBShell-style collection.verb()Databases, collectionsList, kill
ZooKeeperznode commands——

Every engine ships a set of saved queries for monitoring and diagnostics; see Node → Database.

Adding your database

Every engine is a self-contained plugin, so supporting a new one needs no change to Ivory's core. The repository ships an AI agent for exactly this — ask Claude Code to use keeper-database-plugin for your engine and it writes both halves, their tests and the UI wiring by the project's checklist. Then open a pull request; see Contributing.