Skip to main content

Bloodraven

Kubernetes operator for MySQL async replication failover

Get Started

Automated Failover

Polls MySQL every 2 seconds. When the primary becomes unreachable, Bloodraven promotes the standby, flips DNS via external-dns, and migrates workloads via node taints — no human intervention required.

🛡️

Split-Brain Safe

Five layers of protection including sidecar self-fencing: an isolated primary sets super_read_only=ON when it loses contact with the operator and its peer, preventing divergent writes.

🔄

Zero-Downtime Updates

Ordered update strategy rolls out MySQL and sidecar changes one site at a time, failing over to the updated standby before updating the old primary.

📡

Real-Time Status

WebSocket broadcasts push site state changes to connected clients instantly. REST status API and Prometheus metrics provide full observability.

🪬

Clone-Based Bootstrap

New or replacement replicas are seeded using MySQL's clone plugin with GTID auto-positioning — no manual data transfer or snapshot management.

💾

Backup & Restore

Scheduled and on-demand dumps via util.dumpInstance() to S3 or PVC, with structured retention, exponential-backoff retries, Prometheus metrics, automatic artifact cleanup on delete, and bootstrap-only util.loadDump() restores into a brand-new failover group.

🎯

Single Source of Truth

One controller, one CRD, one reconciliation loop. No distributed consensus, no split-brain coordinator, no coordination problems.

🎮

Interactive Playground

Spin up a full Bloodraven cluster locally with a single script. Includes a real-time dashboard, counter app, chaos monkey, and DNS visualization — all on k3d, kind, or minikube.