Skip to main content
  1. Posts/

Marmot – Distributed SQLite with MySQL Interface

··241 words·2 mins·

🐿️ Marmot v2 — Distributed SQLite with a MySQL Interface

What if you could use SQLite in a distributed cluster, with no primary node, and connect using any MySQL client? That’s exactly what Marmot v2 proposes.

🏗️ What is Marmot? A leaderless SQLite replication system built on a gossip-based protocol. No leader election, no single point of failure.

Key features:

  • 🔄 Leaderless: any node accepts writes
  • 🐬 MySQL-compatible: connect with DBeaver, MySQL Workbench, or the mysql CLI
  • 🔒 Distributed transactions: Percolator-style with conflict detection
  • 📡 CDC-based replication: row-level change capture (not SQL replay)
  • 📤 CDC Publisher: exports Debezium-format events to Kafka or NATS

🆚 vs. rqlite / dqlite / LiteFS:

  • ❌ They require a primary node for all writes
  • ✅ Marmot allows writes on any node
  • ❌ They use Raft (leader election)
  • ✅ Marmot uses gossip protocol (no leader)

💡 Quick explanation

Think of Google Sheets: you can edit from any tab at the same time without there being an “owner” of the sheet. Marmot does something similar for SQLite — any server in the cluster can receive writes, and changes propagate automatically to the rest. The twist is that it speaks the MySQL protocol, so you can connect with the tools you already know.

More information at the link 👇

Also published on LinkedIn.
Juan Pedro Bretti Mandarano
Author
Juan Pedro Bretti Mandarano