A thought-provoking talk about when and why developers should consider reinventing existing solutions, challenging the conventional wisdom of 'don't reinvent the wheel'. Laverdure unveils Litebase, a distributed SQLite database, and walks through the multi-year journey of building it.
Laracon US 2025
Conventional wisdom says don't reinvent the wheel. Laverdure argues the opposite: reinvention is how technology evolves and how developers grow.
The missing step between "I don't think I can do it" and "I can do it" is "I'm learning how to do it."
The talk pivots into the story of Litebase, an open source distributed database built on SQLite, backed by distributed file systems and object storage.
The problem: SQLite expects the database file on local disk. Making it work reliably across multiple app servers and queue workers is non-trivial.
First attempt (2019, Laravel Vapor + AWS Lambda + EFS):
Litebase Server architecture:
The corruption incident:
To fix consistency, Laverdure rewrote storage from scratch as a "structured log" — inspired by log-structured merge trees.
- Versioned Write-Ahead Logs — instead of one journal, multiple immutable timestamped WALs created on checkpoint, reducing contention - Page logs — indexed groups of database changes with immutable timestamps, holding data flushed from WALs - Dynamic Data Ranges — the foundational layer; subsets of the database split across many files so a single logical database can scatter across object storage and scale to terabytes - Result: a multi-version log-structured merge tree allowing transactions on a consistent snapshot at a point relative to their start - Features unlocked: intelligent data tiering, non-blocking backups, point-in-time restore, database branching, compression, encryption
Litebase Server exposes a JSON API with parameterized queries.
- Custom Laravel database connection class reusing the existing SQLite processor and grammar - Custom PDO class that sends queries over HTTP instead of calling the local SQLite library - Just add driver config — drop-in
Benchmark (100 migrations, ~200 queries):
| Driver | Time |
|---|---|
| MySQL | 700ms |
| Postgres | 750ms |
| SQLite (local) | 230ms |
| Litebase (JSON/HTTP) | 450ms |
| Litebase (LQTP) | 300ms |
LQTP — Litebase Query Transfer Protocol:
stream_socket_client + PHP fibers for async control flow — no third-party libs, no FFI, no extensions Every sunrise brings new possibilities. Repetition, refinement, reinvention. It's not a waste of time. It's how we evolve technology.
Nadia Boulanger, Quincy Jones' French music teacher:
Quincy, there are only 12 notes until God gives us 13. I want you to know what everybody did with those 12.
The core lesson isn't "always reinvent" — it's that the learning deposited from the attempt is never wasted, even if the project never ships. Two things I'm taking away:
Litebase itself is worth watching — an SQLite-based distributed database with a custom binary protocol is directly relevant to any project weighing SQLite for production at scale (litebase.com).
Additional coverage: laravel.com/blog