Saving cloud costs by writing our own database
Headline and Savings Claims
- Several commenters question “5000% savings,” noting it should be ~98% and joking about saving “more than 100%.”
- Some see the comparison as unfair: Aurora provides HA and rich features, while the custom solution is far narrower.
What They Actually Built (Database vs Log File)
- Many argue it’s not a general-purpose database but an append-only binary log with minimal query features.
- Others respond that “database” is broad; any structured storage plus retrieval qualifies, and lots of real systems are append-only logs plus indexes.
- The article is seen as mixing talk of ACID and geospatial features with a final design that omits most of that, which some find misleading.
Alternatives Suggested
- Repeated suggestions: ClickHouse, TimescaleDB, Cassandra/Scylla, Elasticsearch, Kafka/Pulsar, Parquet-on-S3 with Trino/Athena, DuckDB, TileDB.
- Several argue ClickHouse in particular is a strong fit for high-volume time-series with geo support and cold storage on S3.
- Others note that simply running Postgres/SQLite on EC2 or using existing time-series engines would have avoided custom storage.
Reliability, Durability, and ACID Concerns
- Concerns about EBS latency jitter, fsync failures, snapshot consistency, and lack of documented checksums or corruption handling.
- Critiques that non-ACID append-only formats must still handle partial writes and silent corruption; “battle-tested” DBs solve these edge cases.
- Aurora’s multi-AZ replicated storage is contrasted with a single-AZ EBS volume; cross-AZ availability strategy is unclear.
- Tension noted between “replay exact seconds before an accident” and accepting up to a second of buffered data loss.
Performance, Scaling, and “Unlimited Parallelism”
- Write throughput (tens of KB–MB/s) is considered modest; many off-the-shelf systems could handle it if batched.
- Some question how “unlimited parallelism” works when EBS volumes are AZ-local and single-attached by default; multi-node story and sharding are unclear.
- Read-path scaling is questioned: scanning huge log files for queries may become a bottleneck without indexes.
Cost vs Engineering Effort
- One camp: $10k/month Aurora vs $200/month EBS justifies a bespoke engine, especially if scaled 10–50× over time.
- Opposing camp: initial build, ongoing maintenance, bus factor, and PM/coordination costs may outweigh cloud savings, especially if a capable engineer is diverted from core product work.
- Some argue Aurora and other managed DBs also require expertise, so engineering cost isn’t zero there either.
Philosophical Split: Build vs Buy
- Enthusiasts praise focused engineering: only implement needed features, avoid overpaying for general-purpose platforms, and understand your own system.
- Skeptics worry about “Not Invented Here,” underestimated complexity, and future feature creep gradually forcing them to reinvent a real database.
- Broader criticism of cloud lock-in and “just stitch together managed services” culture vs rebuilding core infrastructure to regain cost control and flexibility.