Skip to content
All tags

#software-engineering

10 entries tagged #software-engineering

  • Transactional Outbox: Two Systems, One Commit

    Post · Sep 28, 2026

    Save to the database, then publish an event: two lines, two systems, and nothing that makes them agree. What happens when the process dies in between, and why every obvious fix still leaves a gap.

  • Event-Driven Systems: Stop Calling, Start Announcing

    Post · Sep 28, 2026

    A checkout handler that calls the ledger, the warehouse, the email service and analytics in a row is as slow as all of them added together and as fragile as all of them multiplied. And every team that cares about payments makes it a little worse.

  • Two Writes, One Row: Who Wins?

    Post · Sep 26, 2026

    Two requests read the same row, both do their maths, both write back. One of them silently disappears. How the system should resolve that isn't one answer: it depends on whether the write is a delta, a quick piece of logic, or a human edit made minutes after the read.

  • Designing Multi-Tenant APIs That Scale

    Post · Jul 18, 2026

    One app, many customers, one WHERE clause keeping them apart. Forget it once and nothing crashes: tenant A just sees tenant B's invoices. How to make isolation something the system enforces, not something engineers remember.

  • Why Payment Retries Need Idempotency Keys

    Post · Jul 12, 2026

    You tap your card, the machine freezes, you tap again. Were you charged twice? An HTTP payment endpoint faces the same question on every retry, and without an idempotency key it gets it wrong.

  • AI Without Losing Judgment

    Post · Mar 17, 2026

    AI made me ship faster, and for a while it also made me approve code I couldn't defend. Speed isn't progress if nobody owns the decisions.

  • TypeScript Result Type and tryCatch

    Snip · Jun 02, 2026

    A `Result<T, E>` union plus `tryCatch` wrappers that turn a throwing call into a value the caller has to inspect: the failure path becomes part of the return type instead of an invisible jump.

  • Make a Write Endpoint Safely Retryable

    Cheat · Jul 01, 2026

    A client that retries a POST after a timeout can create the resource twice or charge a card twice. An idempotency key lets the server spot the retry and replay the first response instead of doing the work again.