YJYasir Jafriinyasir323.hashnode.dev·Sep 14 · 12 min readChoosing a Primary Key: A Tour of the IDs Real Systems Actually UseThe last article in this series was all about picking the right UUID version. This one pulls back a bit further, because UUIDs are just one item on a much longer menu, and depending on what you're bui00
YJYasir Jafriinyasir323.hashnode.dev·Sep 14 · 13 min readPicking the Right UUID Version (So Your Database Doesn't Hate You)I used to type uuid.uuid4() for years without giving it a second thought. It works, it's unique, ship it. Then one afternoon I was staring at a Postgres table where inserts had slowed to a crawl, the 00
YJYasir Jafriinyasir323.hashnode.dev·Jun 27 · 13 min readTap, Tap, Charged Twice: The Idempotency-Key PatternA friend once messaged me, mildly furious, with a screenshot from his bank: the same $500 payment, twice, two seconds apart. He'd tapped "Pay," the app spun for a moment, nothing happened, so he tappe10
YJYasir Jafriinyasir323.hashnode.dev·Jun 26 · 17 min readThe Transactional Outbox Pattern in Python: Solving the Dual-Write ProblemThere's a particular kind of bug I've learned to be afraid of. It doesn't throw an exception. It doesn't show up in your tests. It passes code review, ships on a Friday, and works perfectly for three 10
YJYasir Jafriinyasir323.hashnode.dev·Jun 21 · 9 min readThe Heap That Wouldn't Sit StillA while back at work I picked up a ticket that sounded almost insultingly simple when I first read it: "show the top 25 gainers and top 25 losers today". Live, off the tick firehose, for the whole mar10