@onhazrat

🎯 Key Takeaways for quick navigation:

00:55 🔄 Item potency means the same operation produces the same result, crucial for consistent API behavior.
03:15 📝 Pay attention to the "post" and "patch" HTTP methods, as they can create or modify data, demanding careful handling of item potency.
04:41 🔑 The solution to item potency issues involves using an item potency key (X-Item-Poy-ID) to ensure requests aren't processed multiple times.
05:08 💾 Store the item potency key in a memory system, such as a database or cache, to manage consistent API behavior.
06:58 ✅ Attach the item potency key to your requests, preventing the same request from being processed twice.

Made with HARPA AI

@b.tanner

The best video explanation of this very critical issue high scale, highly reliable systems face. Subscribed!

@soulGrafitti

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.

@cybersholt

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

@asifurrahman5436

learned something new, thanks

@CodingWithAuryn

Very helpful!! Thank you for this nice explanation!

@actitud

Very well explained. Thanks.

@yusufnurwahid898

Very clear explanation!!!
Many thanks!!!

@kazuar87

6:37 what kind of cache? The automatic subtitle does not get it either... :)

@viraj_singh

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.

@jonatasdeoliveiracoelho4691

Extremely helpful! Thanks a lot! Subscribed!

@cariyaputta

So it's equivalent to the concept of pure function?

@rahuldwivedi4758

But what if the user refreshes the page and clicks on retry?

@anandraj2895

pretty good , informative

@verb0ze

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

@josecarlostoscano5837

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?

@N1rOx

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?

@eebeeMusic

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?

@milindsankeshware423

Do you have any video posted on Spring Rest API/ Microservices ? If yes then could you please share ?

@idle.observer

Can someone explain, when we should remove the idempotency key? I think we shouldn't save all the keys forever.