Skip to content

Live Migrations

Postgres Conductor deploys schema updates with zero downtime using automatic migration coordination.

Overview

When you deploy a new version with schema changes, orchestrators coordinate to apply migrations safely without requiring manual shutdown or intervention.

How It Works

When an orchestrator starts, it:

  1. Checks migration status - Compares database version with its own migration version
  2. Attempts migration lock - Uses Postgres advisory locks to coordinate with other orchestrators
  3. Signals old workers - For breaking changes, tells older orchestrators to shut down gracefully
  4. Waits for completion - Ensures old workers finish their current tasks
  5. Applies migrations - Runs migrations in a transaction
  6. Registers and starts - Begins processing tasks with the new schema

A breaking migration is applied only while no older orchestrator is registered. An older orchestrator that starts during the migration waits for it and then refuses to start, as does any orchestrator whose code is older than the database schema.

This happens automatically on every orchestrator startup.

What's Next?