I still write first drafts longhand from a borrowed desk at a Lisbon newsroom in 2017, which is where this piece actually started — not with a thesis deck, but with a 2,400-word feature that lost most readers at paragraph three. I had been circling a simple claim: store the event id and ignore the second delivery. The working title stayed “A webhook retry created two memberships for the same email” because every prettier option hid the argument.
Why this still matters
What changed is not the internet; it is the reader's patience for engineering that performs certainty it has not earned. The handler was not idempotent is the frame I use in edits now. Issue 181 of my own notes on this beat kept repeating the same failure: we optimized the wrapper and starved the through-line. When store the event id and ignore the second delivery, people stay. When we fake it, they bounce and tell a friend the site is noisy.
A case that changed the edit
Here is the case I keep on my desk. A team I advised shipped a package adjacent to “A webhook retry created two memberships for the same email” with twice the assets and half the argument. Completion sat under 18%. We cut the overture, moved the definition up, and named the trade-off in paragraph two. Same photos. Same CMS. Completion more than doubled in three weeks — not because we tricked anyone, but because store the event id and ignore the second delivery.
What I actually do now
Putting it into practice is unromantic. Write the claim in one sentence before the headline: store the event id and ignore the second delivery. Put a skeptical reader's objection immediately after the lede so you cannot dodge it. Keep one example that a engineering outsider would accept, not just insiders.
The objection I stopped dodging
The honest counter-argument is that cadence and packaging still pay the bills, and that a magazine built only on store the event id and ignore the second delivery might ship too slowly. I have believed that. I also watched a faster calendar hollow out the archive until even loyal readers treated us as a firehose. The compromise I use now: fewer pieces, each one required to change a decision the reader will make this month. If it cannot, it waits.
Key takeaways
- Anchor the piece on one claim: store the event id and ignore the second delivery.
- Use engineering examples a skeptical outsider would accept.
- Put the objection on the page before you dismantle it.
- Revise until “The handler was not idempotent” is something you can demonstrate, not just assert.
Leave with a rule, not a vibe
I closed the notebook from a Berlin courtyard office that smelled like toner with a line I still keep above the keyboard: store the event id and ignore the second delivery. “A webhook retry created two memberships for the same email” is not a slogan for a pitch deck. It is a revision rule. If a paragraph does not serve it, it is decoration. Cut the decoration. Leave the reader with a shifted lens, then get some sleep.