Idempotency - What it is and How to Implement it