home.social

#idempotency — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #idempotency, aggregated by home.social.

fetched live
  1. A timed-out POST can still commit. Retrying it may create a second order, payment, or fulfillment request.

    I built a Quarkus checkout demo around the HTTP Idempotency extension and tested the full state machine: first request, stored replay, concurrent 409, payload mismatch, and missing keys. The production section also covers the Redis 0.1.0 blocker and the crash window around external side effects.

    the-main-thread.com/p/quarkus-

    #Quarkus #Java #Idempotency

  2. A timed-out POST can still commit. Retrying it may create a second order, payment, or fulfillment request.

    I built a Quarkus checkout demo around the HTTP Idempotency extension and tested the full state machine: first request, stored replay, concurrent 409, payload mismatch, and missing keys. The production section also covers the Redis 0.1.0 blocker and the crash window around external side effects.

    the-main-thread.com/p/quarkus-

    #Quarkus #Java #Idempotency

  3. Learn how idempotency keys prevent duplicate payments, orders, and webhooks. Build reliable APIs that safely handle retries and distributed system failures. hackernoon.com/designing-idemp #idempotency

  4. Learn how idempotency keys prevent duplicate payments, orders, and webhooks. Build reliable APIs that safely handle retries and distributed system failures. hackernoon.com/designing-idemp #idempotency

  5. Интеграция платёжных систем в high-risk вертикалях: архитектура, риски и практический опыт

    Последние несколько лет я собираю платёжные интеграции для продуктов, которые банки вежливо называют «high‑risk». Под «high‑risk» обычно попадают: iGaming / betting dating (особенно adult dating) crypto onboarding / exchange ramps nutra / supplements travel / subscriptions с free‑trial моделью forex / trading / микрозаймы Один проект — подписочный сервис на NestJS/TypeORM с рекуррентными списаниями через SOAP‑шлюз прибалтийского банка‑эквайера. Второй — кредитный продукт на Python/FastAPI, где под капотом крутятся три локальных PSP одновременно. Обе системы живут в проде, обе списывают реальные деньги с реальных карт, и обе научили меня вещам, которых нет ни в одной документации шлюза. Эта статья — не теория из учебника по финтеху. Это то, что я бы хотел прочитать до того, как первый раз задеплоил cron, который умеет списывать деньги. Подстелить соломки

    habr.com/ru/articles/1056698/

    #платежные_системы #эквайринг #highrisk_бизнес #chargeback #антифрод #state_machine_платежей #idempotency #retry_логика #рекуррентные_платежи

  6. Вебхуки оплаты ЮKassa, IP-check, event log, idempotency и аварийный capture

    Платежный код обычно выглядит ровным ровно до первого реального сбоя. Пока платежи идут по ожидаемому сценарию, кажется, что достаточно создать оплату, дождаться вебхука и обновить локальный статус. Но как только вебхук приходит повторно, приходит позже нужного, прилетает от не того IP, или удаленный платеж уже живет в одном статусе, а локальная база в другом, становится ясно, что платежный контур без защит почти всегда врет. Проблема в том, что вебхук нельзя считать истиной без проверки, нельзя применять без журнала событий, нельзя подтверждать capture случайным ключом, и нельзя оставлять систему без аварийного пути, если автоматический сценарий где-то разошелся. В одном из проектов этот узел был собран так, первый платеж создается с capture=False , входящий webhook проверяется по IP, каждое событие сначала пишется в журнал, потом маршрутизируется в обработчик, capture подтверждается стабильным idempotence key, успешный платеж валидируется по сумме, валюте и metadata, а на случай расхождения остается отдельный ручной confirm, который умеет дочитать фактический статус из ЮKassa и синхронизировать локальную базу. То есть задача тут не просто принять webhook, а построить платежный контур, которому можно верить.

    habr.com/ru/articles/1044796/

    #Django #Python #YooKassa #Webhooks #Idempotency #Payments #Recurring_Payments #API #Fullstack #Backend

  7. Idempotency keys: 5 граблей, которые мы поймали на проде

    Пятница, 23:47. PagerDuty: “Платёж AmEx, провайдер вернул 5xx три раза подряд, билеты не зарезервированы.” Открываю логи – действительно три ответа провайдера 5xx, ни одной успешной транзакции по нашей базе. Закрываю как временный сбой на стороне провайдера, пишу короткую сводку в дежурный чат и иду досматривать. Через 40 минут второй алерт – уже от ночной поддержки: клиент прислал скрин выписки, 3 списания подряд за одну бронь. У клиента рейс через 6 часов, ему нужна действующая бронь и подтверждение, что он завтра нормально улетит, а не тикет в поддержку. Мы делали B2B-платформу для деловых поездок: бронь авиа, отели, трансфер, страховка, в финале – оплата корпоративной картой через платежный шлюз. С этой ночи началась история, которая закончилась переписыванием всего платёжного слоя нашего booking-сервиса. По дороге мы поймали 5 граблей.

    habr.com/ru/articles/1039860/

    #идемпотентность #idempotency #платежи #распределённые_системы #NET #C# #API #intentkey #race_condition #грабли

  8. In a world where tech buzzwords collide with baffling logic, this article bravely declares that #idempotency is simple... until it isn't 🤦‍♂️. With more #contradictions than a politician's promises, it offers an unforgettable checklist to ensure your first request is your last. Move over rocket science, there's a new #complexity in town! 🚀
    blog.dochia.dev/blog/idempoten #techbuzzwords #softwaredevelopment #HackerNews #ngated

  9. In a world where tech buzzwords collide with baffling logic, this article bravely declares that #idempotency is simple... until it isn't 🤦‍♂️. With more #contradictions than a politician's promises, it offers an unforgettable checklist to ensure your first request is your last. Move over rocket science, there's a new #complexity in town! 🚀
    blog.dochia.dev/blog/idempoten #techbuzzwords #softwaredevelopment #HackerNews #ngated

  10. #Idempotency: What, Why & How — deep dive into safe retries in #Laravel

    🔁 #PHP #API #backend

    🤔 What is #idempotency? An operation that can be called multiple times while producing the same final effect as calling it once — critical when clients retry failed requests

    ⚠️ Without idempotency, retries can cause: duplicate orders, double payments, repeated webhook processing, multiple subscription changes & inconsistent audit trails

    🧵 👇

  11. #Idempotency: What, Why & How — deep dive into safe retries in #Laravel

    🔁 #PHP #API #backend

    🤔 What is #idempotency? An operation that can be called multiple times while producing the same final effect as calling it once — critical when clients retry failed requests

    ⚠️ Without idempotency, retries can cause: duplicate orders, double payments, repeated webhook processing, multiple subscription changes & inconsistent audit trails

    🧵 👇

  12. State machine design enforces idempotency in financial workflows. Business records hold an explicit state field, and transitions follow predefined rules. Repeated operations on an already-transitioned state produce no additional change.

    #Idempotency #Fintech #SystemDesign

  13. State machine design enforces idempotency in financial workflows. Business records hold an explicit state field, and transitions follow predefined rules. Repeated operations on an already-transitioned state produce no additional change.

    #Idempotency #Fintech #SystemDesign

  14. Idempotency keys are unique identifiers attached to payment requests. They allow clients to safely retry failed or timed-out requests, as the server uses the key to detect and deduplicate repeat submissions.

    #Idempotency #PaymentSystems #Fintech

  15. Idempotency keys are unique identifiers attached to payment requests. They allow clients to safely retry failed or timed-out requests, as the server uses the key to detect and deduplicate repeat submissions.

    #Idempotency #PaymentSystems #Fintech

  16. Participants in orchestrated sagas must be idempotent: executing the same command more than once must produce the same result. This is required because the orchestrator may retry commands after transient failures.

    #Orchestration #Idempotency #Microservices

  17. Participants in orchestrated sagas must be idempotent: executing the same command more than once must produce the same result. This is required because the orchestrator may retry commands after transient failures.

    #Orchestration #Idempotency #Microservices

  18. At-least-once. Это не баг провайдера. Это ваша архитектурная проблема

    Думал, зайду в крипту и буду просто дёргать API блокчейна. Не вышло. Захожу в проект. Стек: FastAPI, PostgreSQL, Redis как Celery broker, Celery workers, Docker, Web3. Стартап на хайпе, деньги реальные, архитектура собрана на коленке. Смотрю на архитектуру платёжного процессинга и первая мысль: ребята, вы серьёзно? Финансовые операции с реальными деньгами, без idempotency вообще, Redis как брокер без persistence, Web3.py синхронные вызовы внутри Celery тасков. Разговор был короткий: задача такая, чини что есть. Сроки горели.

    habr.com/ru/articles/1028708/

    #idempotency #PostgreSQL #Celery #FastAPI #Redis #atleastonce #webhook #distributed_systems #финтех

  19. Как поход в кино превратился в сессию системного дизайна

    Недавно ходил в кино и, пока стоял в очереди на вход, поймал себя на мысли, что проектирую систему, которой пользуется контролер. На первый взгляд задача примитивная: есть база билетов, контролер сканирует QR, система должна проверить билет и пустить человека. Главное условие - один билет используется ровно один раз. Я прикинул, и понял, что проблем там гораздо больше, чем кажется ..

    habr.com/ru/articles/1017332/

    #distributed_systems #распределенные_системы #проектирование_систем #system_design #software_engineering #postgresql #разработка_программного_обеспечения #idempotency #backend #backendразработка

  20. Очередь задач на Postgres: SKIP LOCKED + lease/heartbeat + backpressure (практический опыт)

    Как сделать надёжную очередь задач без Rabbit/Kafka, используя только Postgres? Разбираю боевой паттерн: FOR UPDATE SKIP LOCKED для конкурентного забора, lease/heartbeat для возврата задач после падений и backpressure, чтобы воркеры не съели память.

    habr.com/ru/articles/984102/

    #PostgreSQL #очередь_задач #SKIP_LOCKED #FOR_UPDATE #lease #heartbeat #backpressure #atleastonce #idempotency #graceful_shutdown

  21. Idempotency Keys: How PayPal and Stripe Prevent Duplicate Payment

    medium.com/@sahintalha1/the-wa

    "[I]dempotency keys represent a fundamental innovation in digital payments, ensuring transactions are executed once and thereby enhancing security and user experience." -- #TalhaŞahin

    #api360 #payments #idempotency

  22. Last week, I wrote an analysis of the #ITEF #Idempotency-Key specification. The specification aims to avoid duplicated requests. In short, the idea is for the client to send a unique key along with the request:

    * If the server doesn’t know the key, it proceeds as usual and then stores the respons

    * If the server knows the key, it short-circuits any further processing and immediately returns the stored response

    This post shows how to implement it with #ApacheAPISIX.

    blog.frankel.ch/implement-idem

  23. The first rule of #distributedsystems is "Don’t distribute your system". Designing distributed systems right is infamously hard for multiple reasons.

    Imagine that the client sending a request sends a unique key along. The server keeps track of key-request pairs.

    It’s precisely the idea behind the #IETF #specification The #Idempotency-Key HTTP Header Field.

    blog.frankel.ch/fix-duplicate-

    #API #APIs

  24. Explore what means, why it matters, and how it shapes how we design and interact with software: bit.ly/3upbRQt

    Whether you’re a seasoned developer or just embarking on your coding journey, understanding idempotency is crucial to writing more robust and resilient programs.