Идемпотентность и коммутативность API: что это и как применяют на практике
Description
Как повторные запросы API могут привести к сбоям в системе? Почему важно, чтобы результат операций оставался корректным, даже если их порядок выполнения изменится?
Эти вопросы об идемпотентности и коммутативности актуальны для системных аналитиков, которые работают с системами, в которых есть бронирования, заказы или платежи.
В подкасте обсудим, как принципы идемпотентности и коммутативности API помогают избежать проблем и обеспечивают корректность работы систем.
Презентация к эпизоду: https://getanalyst.ru/podcast/idempotency-and-commutativity-api
1:25 - Проблемы приложений, которые игнорируют идемпотентность и коммутативность в своих API.
3:24 - О принципах работы сетей с пакетной передачей данных.
6:15 - Определение идемпотентности и коммутативности. О проблемах, с которыми столкнулись на проекте из-за несоблюдения этих свойств API. Как защищаться от этих проблем со стороны UI, без изменения API.
11:40 - Ключ идемпотентности и где его использовать в REST API в headers, query или body JSON. Естественный и суррогатный ключ.
18:45 - Инварианты в пользовательских сценариях - о проблемах бизнес-логики из-за которой создаются дубликаты данных в системе.
26:00 - Коммутативность в API.
30:52 - GET, POST, PUT, PATCH, DELETE и их идемпотентность. Почему метод PATCH не идемпотентный, хотя он похож на идемпотентный. Можно ли не идемпотентные методы делать идемпотентными.
42:25 - Подведение итогов и рекомендации.
Ведущая:
Екатерина Ананьева
Гости:
Елизавета Акманова, Старший системный аналитик в компании UseTech