The best video explanation of this very critical issue high scale, highly reliable systems face. Subscribed!
Nice video. I really like your examples and approach. Around 03:33 you discuss why POST and PATCH require idempotentcy but the other HTTP methods don't. There is a lot of information arguing the opposite which I found when I googled POST and PUT. At a glance the reasoning one way or the other seems to depend on the exact use case and how effectively the return status codes are managed. Perhaps you could add some discussion or commentary addressing the divergence of opinion.
Really interesting topic, been doing web development for 20 years and luckily never had anything like uber eats had! But the video was done really well and am looking forward to more from ya. Keep up the great work man
learned something new, thanks
Very helpful!! Thank you for this nice explanation!
Very well explained. Thanks.
Very clear explanation!!! Many thanks!!!
6:37 what kind of cache? The automatic subtitle does not get it either... :)
When I was in my university, I ordered so many free food at the time of the glitch. Later on I was banned from uber eats and then uber and I just made a new uber account ande moved on. :) Great video by the way.
Extremely helpful! Thanks a lot! Subscribed!
So it's equivalent to the concept of pure function?
But what if the user refreshes the page and clicks on retry?
pretty good , informative
I don't know if I agree with not needing to concern ourselves with idempotency for other methods. I'd say it depends on the API. There are some cases where DELETE for example should be idempotent, like when deleting an item from a doing cart (and setting the total cost for the remainder of the cart
Would repeated calls of the function ‘makeRequest’ have different values for the idempotency key? If they do, then the api would process both of them, wouldn’t it?
Thanks for the awesome video, I just came across this concept today. I have a question about idempotency with regards to the PUT request. Shouldn't it be idempotent? If for example a resource did not exist when using the put request, shouldn't it then create it, in order to achieve idempotency?
Great explanation—thank you! Regarding the solution, wouldn't it be simpler to store the GUID (UID) within the object's table, either as a primary key or a regular field? If the field has a unique index, the system will automatically trigger an error when a duplicate is inserted. Without the unique index, the save method can first verify whether the key already exists before proceeding. This way, the logic remains encapsulated within the save method, creating a more streamlined design. Am I overlooking something?
Do you have any video posted on Spring Rest API/ Microservices ? If yes then could you please share ?
Can someone explain, when we should remove the idempotency key? I think we shouldn't save all the keys forever.
@onhazrat