api-design
Dispatch
Most APIs eventually accumulate an error-code taxonomy. The questions are what shape the codes take, how stable they are across versions, and how customers build reports from them. The choices look minor until customer integrations depend on them.
postgres
Dispatch
TRUNCATE is often described as a faster DELETE for emptying tables. The performance gain is real and substantial. The semantic differences are also real and substantial, and the surprises bite teams that reach for TRUNCATE without reading the manual.
api-design
Dispatch
Tags occupy a strange spot in API design. They are not core resource fields and they are not arbitrary application state, but a middle ground that customers use to organize resources without the provider knowing the organization.
postgres
Dispatch
For most of Postgres history, IO observability worked at the database level via pg_stat_database and at the relation level via pg_statio_user_tables. Query-level IO required correlation. Postgres 16's pg_stat_io closed part of the gap.
postgres
Dispatch
Most slow-query investigations begin with reconstructing what happened from incomplete information. The auto_explain extension closes the gap by logging the actual plan that ran when execution exceeded a threshold.
api-design
Dispatch
Every API designer eventually faces the question of how deeply to nest URL paths. Three resources deep feels too long; flat addressing loses hierarchy; the right pattern is rarely one extreme.
api
Dispatch
Webhook event payloads have all the versioning problems of API responses without any of the version-pinning escape hatches. The customer cannot opt into a new schema by changing a header. The right design treats the payload as customer contract from day one.
postgres
Dispatch
Most application schemas leave domain validation in application code where it belongs sometimes and where it does not belong other times. CHECK constraints close the gap with database-level enforcement that survives every code path and every ad-hoc backfill.
api-design
Dispatch
Timestamp fields look simple. Pick ISO 8601, return everything in UTC, document the format. Done. Then customer complaints arrive: dates one day off, daylight saving time mishandled, naive timestamps misinterpreted as local time. The right design choices for timestamp fields are unfashionably s
history
Dispatch
Before the pocket watch, time was a public property announced by church bells and town clocks. The pocket watch privatized time and made it portable. The downstream consequences over four centuries include the modern working day, the railway timetable, and the cultural assumption that everyone
postgres
Dispatch
SERIAL was Postgres's auto-increment shorthand for two decades. IDENTITY columns replaced it in Postgres 10 with stricter semantics and cleaner schema. Most codebases still use SERIAL by habit. The conversion is straightforward and the new semantics are worth the small migration cost.
api
Dispatch
Most webhook documentation discusses retry policy in detail and concurrency policy not at all. Yet concurrency is what determines whether your delivery system can keep up under spikes and whether customer receivers get hit faster than they can process.