Rails makes it easy to ship fast. It doesn’t automatically make it easy to ship safely.

The patterns that matter: database-level constraints (not just application-level validations), explicit transactions on anything that touches money or state machines, idempotency keys on external API calls, and pessimistic locking when multiple processes touch the same record.

None of these are controversial. Most codebases that have had a data-loss incident were missing at least one of them.


This is placeholder content. Real essay coming.

← all writing