Nguồn: DB Pro Blog
Tóm tắt
Bài viết từ đội ngũ DB Pro đặt ra câu hỏi thực dụng: khi nào thì thực sự cần database? Luận điểm xuất phát từ một sự thật cơ bản — database cũng chỉ là files. SQLite là một file duy nhất, PostgreSQL là một thư mục files với process đứng trước nó. Vì vậy câu hỏi không phải là “dùng files hay không” mà là “dùng files của database hay files của chính mình”.
Tác giả benchmark hai chiến lược lưu trữ JSONL (newline-delimited JSON) trên cùng một HTTP server viết bằng Go, Bun và Rust: (1) đọc toàn bộ file mỗi lần request — O(n) scan, đơn giản nhất; (2) load file vào memory map khi startup — O(1) lookup, file JSONL là durable backing store còn hashmap là index. Kết quả cho thấy với data nhỏ và traffic thấp, in-memory JSONL store có thể đạt throughput rất cao mà không cần database overhead.
Điểm quan trọng nhất của bài là phân biệt rõ giới hạn của từng approach: in-memory JSONL phù hợp cho early-stage applications với dataset vừa, nhưng ngay khi cần concurrent writes, complex queries, transactions, hay data lớn hơn RAM — database là lựa chọn đúng đắn. Bài viết không anti-database mà là lời nhắc nhở rằng nhiều startup over-engineer ngay từ đầu với database setup phức tạp trong khi chưa cần thiết.
Đây là bài viết thực dụng phù hợp với indie developers và các team nhỏ đang ở giai đoạn prototype/MVP. Đồng thời cung cấp code mẫu đầy đủ bằng Go, Bun (TypeScript) và Rust cho cả hai approach — có giá trị tham khảo cao.