Skip to content
In development now

Every change is a plan you approve before it runs

Restarts, upgrades, configuration changes, new members, restores and deletions all start as a plan: what will change, in what order, how risky it is and what it will disrupt. Policies decide who has to agree. Then the plan runs as an operation that survives failures and restarts.
Plan sheet for a rolling restart of orders-db: high risk, rolling restart, about two minutes and four ordered actions, with the policy outcome and Apply now or Apply in window.
A rolling-restart plan for a production PostgreSQL cluster: Actions, then Restart. Interactive demo, simulated data. Open this screen in the demo

What a plan shows

A plan is a preview of one change to one cluster. Before anything runs, it lists the exact difference between the current and the requested configuration, the ordered actions that will carry it out, the estimated duration, and checks such as “shared_buffers 8 GB is 25% of the 32 GiB memory limit”.

Values that ElastiCluster calculates for you are shown with their result and the reason. If the memory limit changes, the plan says that work_mem moves from 14 MB to 23 MB and why, instead of hiding it.

Each plan is stored once and bound to a hash of its content. The console, the ecl command line, the REST API and the MCP server show the same plan, so an approver approves exactly what will run.

Risk and disruption, in plain terms

Every plan carries a risk level, from low to critical, and every action carries the disruption it causes. In production, a medium-risk plan that restarts members is raised to high.

Risk levels

RiskTypical changes
LowCreating a cluster, an online parameter change, a backup now
MediumA rolling restart, a switchover, a minor upgrade, a restore to a new cluster
HighRemoving a member, a major upgrade, a forced failover, reducing memory
CriticalDeleting a cluster, an in-place restore, an unfenced disaster-recovery promotion

Disruption levels

DisruptionWhat clients notice
NoneNothing restarts or reconnects
ReloadConfiguration reloads in place
Connection resetClients reconnect once
RollingOne member at a time; the cluster stays available
Partial downtimeWrites pause briefly, typically under a minute
DowntimeThe cluster is unavailable while the step runs
DestructiveData is removed; typed confirmation required

Who approves what

Policies belong to environments. A project starts with production, staging and development, each with its own rules, and a plan that touches several environments follows the strictest one.

  • Production and staging require a second admin for critical plans by default; you can also require a second admin for high-risk plans.
  • Development lets you approve your own critical plans after typing the cluster name.
  • Four-eyes is on in production: the approver must be a different person from the requester, and the owner of an AI assistant’s token can never approve that token’s requests.
  • Operators approve up to medium risk; high and critical plans need an admin or owner. Approvals happen in an interactive session after re-entering a second factor.

Approval links in notifications only open the console; they never approve anything by themselves. Approvals expire after seven days by default.

Approvals inbox: three pending plans sorted by risk, one stale plan that needs a re-plan, and the selected plan with its consequences and approval requirements.
The approvals inbox: highest risk first, with the requirement each plan still needs. Interactive demo, simulated data. Open this screen in the demo

Stale approvals never run

An approval belongs to one version of one plan. If the cluster changes in the meantime, if a port or quota the plan reserved is taken, or if the policy becomes stricter, the approval turns stale and nothing runs. The inbox groups stale items under “Needs a re-plan”, and Re-plan prepares the same change against the current state.

Maintenance windows

Disruptive plans can wait for the environment’s maintenance window, written as days, hours and a time zone such as sun 04:00-06:00 Europe/Berlin. Production defaults to Sunday 04:00 to 06:00. If a window ends mid-change, the operation finishes the current member and waits for the next window. An admin can start an approved plan early, and that is recorded too.

Operations that finish what they start

An applied plan becomes an operation. Each step is saved before it runs, so if the control plane restarts, it resumes at the step it was on and checks what the step already achieved before repeating anything.

  • A failed step pauses the operation and keeps its locks. You choose: retry the step, skip it with a reason, or abort and undo the completed steps in reverse order.
  • Safety steps cannot be skipped: fencing an old primary, integrity checks and the point after which an upgrade cannot be rolled back.
  • A network partition pauses instead of failing. If a server stops answering mid-change, the operation waits, then asks whether to keep waiting, continue without it or abort.
  • Rolling changes watch health. If cluster health drops below where it started, the change pauses and alerts you.
  • One change per cluster at a time. Concurrent plans never share a port or exceed a quota.
A running rolling restart of orders-db, step 2 of 6, with timestamped logs for each step and the remaining steps with estimates.
A rolling restart running, with live logs per step. Interactive demo, simulated data. Open this screen in the demo

The few things that are not plans

Some small decisions apply at once and are still audited: marking favourites, acknowledging and silencing alerts (with undo), pinning a backup, editing notification routes, snoozing an advisor recommendation, turning deletion protection on or off (admins only), renewing an agent certificate and approving a new server. AI assistants never get these shortcuts; for them, even a silence is a plan.

Not a schema-migration tool

Plans cover the operation of clusters: topology, configuration, versions, users, backups and restores. Changes to your application’s tables and indexes stay with the migration tool you already use.

Status

Plans, approvals and resumable operations are being built now and arrive with the first preview, v0.1. You can try the whole flow in the interactive demo: open orders-db, choose Actions, then Restart, and apply it, or run the “AI agent requests a change” scenario from Demo controls and approve it.

Try the console before it ships

The interactive demo runs the whole console on simulated data. Trigger a failover, approve an AI assistant’s plan, restore a backup to a point in time. Nothing to install.