API Design

Backend & APIs

A Webhook With No Retry Policy Is a Notification You Will Never Receive

Webhooks are push notifications that depend on the receiver being available at the exact moment the event occurs, and a…

Read More »
Backend & APIs

API Versioning Is a Deprecation Problem, Not a URL Problem

Choosing between /v1/ and a header is the easy decision. The hard part is getting clients off old versions, which…

Read More »
Backend & APIs

An Error Response That Does Not Say What to Do Is Not an Error Response

A client that receives an error with no indication of what went wrong or what to do about it is…

Read More »
Backend & APIs

An Operation That Takes Too Long to Do Synchronously Should Not Be Synchronous

When a request triggers work that takes longer than a client can reasonably wait, doing it synchronously ties up the…

Read More »
Backend & APIs

Versioning an API in the URL Is the Most Honest Option, Not the Best One

URL versioning is the most visible and least subtle way to version an API, which is exactly why it is…

Read More »
Backend & APIs

A Single Rate Limit Bucket Lets One Bad Client Starve Everyone Else

Limiting total requests per second protects the server and does nothing to stop one misbehaving client from consuming the entire…

Read More »
Backend & APIs

GraphQL Solves a Problem You Might Not Have

GraphQL genuinely fixes over-fetching and client-driven data needs. It also brings the N+1 problem, unbounded query cost, and caching you…

Read More »
Backend & APIs

An Idempotency Key Is the Difference Between a Retry and a Duplicate Order

When a client retries a request because it timed out, the server cannot tell whether the original request actually succeeded,…

Read More »
Backend & APIs

Every Endpoint Formatting Errors Differently Is a Tax on Every Client

An API that returns three different error shapes depending on which endpoint or which failure occurred forces every client to…

Read More »
Backend & APIs

Rate Limiting Is a Product Decision, Not Just a Security Control

The limits you set on an API communicate what you expect from your clients, and getting them wrong either lets…

Read More »
Back to top button