It's also amazing how hard of a concept idempotent data pipelines are for some folks to understand, and how much effort they'll put into _avoiding_ idempotency.
Idempotency
31–40 of 69 posts
Re: Idempotency
#32Reading this article is completely safe even if you already understand idempotency.
I want to meet the article that isn’t safe to read even if you’re familiar with its content.
Now imagine you keep getting interrupted in the middle, but really want to read it all, thus gradually filling the whole of your brain capacity.
Re: Idempotency
#33Come here to learn more details and maybe find answers to my questions. Unfortunately, the article is very modest explaining how to work with idempotency. Missing key answers like what about two requests in flight, how to store and query requests status reliably. The article mention requests should be ACID, but the diagram has caching storage. Would redis/dynamodb work here?
Redis has SETEX that will set if not existing. Can be used as a lock.
Re: Idempotency
#34Reading this article is completely safe even if you already understand idempotency.
I want to meet the article that isn’t safe to read even if you’re familiar with its content.
Re: Idempotency
#35Reading this article is completely safe even if you already understand idempotency.
I want to meet the article that isn’t safe to read even if you’re familiar with its content.
Re: Idempotency
#36pet peeve: idempotency is badly named. idempotent literally translated is ‘same power.’ two or more things having the same power doesn’t necessarily mean they produce same, single result. if that were the case we wouldn’t need the special handling for idempotent instructions/commands/actions to ensure duplicates are not created.
I’m not totally sure, but in math “idempotent” elements are those for which x^2 = x. And so in software engineering it refers to operations for which doing them twice has the same effect as doing them once. Maybe this is what is meant by “same power”?
Re: Idempotency
#37Earlier quoted context omitted.
I want to meet the article that isn’t safe to read even if you’re familiar with its content.
I can’t find it anymore, but there was someone who had some home automation where they could open or close their garage door from the internet. However it would occasionally open automatically. Eventually they realized it happens whenever they opened their browser. Apparently, they visited the page often enough for it to be favorited on their homepage. Unfortunately, it was written to act on any request, including GE…
Re: Idempotency
#38The author proposes a solution that needs three steps: query a cache, execute, update the cache. These are not atomic and, therefore, not thread-safe. As a result, if a second request arrives before the first is finished, the operation will be executed again.
Re: Idempotency
#39My day-job is Data Engineering. We've carefully built our ETL patterns/tools/data structures to be idempotent. It's amazing how freeing this is. Dealing with cascading failures, intermittent failures, delays, re-runs and time-zones are all os much more manageable when we know that just re-running any given task will do the right thing. It's also amazing how hard of a concept idempotent data pipelines are for some fol…
Idempotent calls might be used redundantly to ensure that a particular state or setting exists at a particular time.
I don't really care that a particular setting was already set yesterday or an hour ago.
Conversely, it's probably a really a good idea to be sure it's on that particular setting right now, before I fire the laser!
Re: Idempotency
#40One of the things I think I did right in my career is working on payment and billing systems early on. It does teach you how to build at least semi-reliable software because people tend to get really mad when you screw with their money. It also is a good introduction to regulation and compliance. Idempotency was is one of the concepts you get taught on day one in that field (as kind of demonstrated by that being the…
Interestingly, I didn’t have to be taught about idempotency early on in my career; I’m pretty sure I didn’t even know what that word meant. I’m a naturally curious person and I was always curious about the failure cases for the software I worked on—e.g., “What happens if this request is successful but times out before returning a response to the client?” I honestly assumed every programmer asked these types of questi…