Designing robust and predictable APIs with idempotency archive API design patterns idempotency on 🔗 stripe.com