`sqlite`は、ファイルシステムにあるデータファイルにSQLインターフェイスを提供する軽量データベースエンジンです。それは十分にテストされ、堅牢で、高速で、ライブラリであるため、データベースサーバーはもちろん、外部プロセスを必要としません。サイズ、スピード、シンプルさのために、Webブラウザーやモバイルアプリで広く使用されています。

これにより、ファイルをデータベースサーバーのように扱うことができるため、理想的なスターターデータベースになり、より多くのスループットが必要なのでSQLサーバーに移動します。

この方法で「sqlite」を使用するという2つのダウンサイドがあります。第一に、「.db`ファイルがサーバーに存在し、メモリ内にあるため、「詳細な防御」が少なくなります。Webサーバーによるファイルまたはメモリの開示は、データベース全体を漏らすことができます。第二に、同時読み取りは一般に非常に高速ですが、書き込みはロックの競合を引き起こす可能性があります。したがって、複数のユーザーと遅いディスクがある場合、それは正しい選択ではないかもしれません。

スケーラビリティの問題にもかかわらず、データベースコンポーネントを含む作業プロトタイプを迅速に開発するための実用的なデフォルトです。
`sqlite` is a lightweight database engine that gives an SQL interface to a data file that sits in your filesystem. It's well tested, robust, fast, and as it's a library it doesn't require external processes, let alone a database server. It's used extensively by web browsers and mobile apps due to its size, speed and simplicity.

This makes it an ideal starter database as you can treat a file like it's a database server, then move to a SQL server as you need more throughput.

There are two down-sides of using `sqlite` this way. Firstly, because the `.db` file exists on the server and is in memory you have less "defence in depth"; file or memory disclosure by the webserver can leak the whole database. Secondly, while concurrent reads are generally very fast, writes can cause lock contention. So if you have multiple users and a slow disk then it might not be the right choice.

Despite the scalability issues, it's a practical default for quickly developing a working prototype that includes a database component.