I have a habit of not including a database at all when starting out a server app.<p>Instead I just use the language&#x27;s native array and map types to store objects, and write simple functions to persist the data into a transaction log (usually a &quot;newline-separated JSON objects&quot; style file). On application startup, the objects are reconstructed by reading back the log file.<p>This approach can go surprisingly far. Memory is cheap, and not having a separate database behind a socket eliminates a whole class of potential issues and bottlenecks. The log file is easy to back up. If it grows too big, you can always compact it by dumping the in-memory structure.<p>(I guess I should add a disclaimer about &quot;toy projects&quot; and &quot;serious production environments&quot;, because some people seem to get oddly upset about the notion of not having a &quot;real&quot; database for a web app...)