Hacker News new | ask | show | jobs
by wayfinder 913 days ago
It gave me an intuitive understanding of state machines and idempotency is one solution to transitions.

If you start with State A and a call changes it to State B, what does running the call again do? A->B? But you’re already at B. Shit’s going to break. Redesign your system.

1 comments

In this example, it seems the API should return some 4xx error.

If there's a process with two steps, moving from Step A to B requires the process to be at Step A and it's already at step B, it should return an error. At first glance, this doesn't seem the kind of problem that idempotency is supposed to prevent...

Instead of idempotency you can return a 4xx error too. You use idempotency because it’s logistically less complicated for the client.