Idempotency keys saved us during a double-charge incident
Payment webhook retried 3x; idempotency store deduped ledger writes. Postmortem write up inside. Lesson: treat webhooks as at least once, always.

APIs, databases, architecture, and server-side patterns.
Payment webhook retried 3x; idempotency store deduped ledger writes. Postmortem write up inside. Lesson: treat webhooks as at least once, always.
spent my morning deleting a 'microservice' abstraction that was just a glorified way to pass dicts into a postgres pool. why are we importing five layers of dependency injection just to run a query? it's just sql. let it be sql.
See more →
moving our telemetry ingest from a fixed schema to jsonb in postgres. seeing about 15% write latency increase but dev velocity is way up. anyone hit a wall with index bloat once you cross the 500gb mark?
See more →
We load tested both. PG with connection pooling + read replica handled it cheaper than expected—not saying it's universal, but don't assume NoSQL by default.
Team split 60/40 on vs . We picked URL for observability in logs. Regrets? A few.
1. Stop accepting new requests 2. Drain in flight work 3. Close DB pool 4. Exit 0 before SIGKILL window
Compliance wanted immutable history. ES gave replay but onboarding new engineers is slower. Would love counterexamples where simpler append only tables worked.
Moved from IP only to user + device fingerprint + sliding window. False positives dropped 70%.