digital-garden/dev/architecture/Идемпотентность.md

36 lines
2.8 KiB
Markdown
Raw Normal View History

2024-09-11 21:28:43 +03:00
---
aliases:
- идемпотентны
- идемпотентной
2024-11-13 18:53:59 +03:00
- идемпотентности
2024-11-26 22:19:07 +03:00
- идемпотентную
- идемпотентные
2024-09-11 21:28:43 +03:00
tags:
- maturity/🌱
date: 2024-09-11
---
Идемпотентность — это свойство операции, при котором многократное выполнение этой операции с одинаковыми входными данными не изменяет результат после первого выполнения. Иными словами, независимо от того, сколько раз вы выполните операцию, итог будет одним и тем же.
Примером идемпотентной операции может быть запрос на установку значения, например, «установить цену товара в 100». Если отправить этот запрос несколько раз, цена останется 100, и результат не изменится. В противоположность этому, операция «увеличить цену на 10» не является идемпотентной, так как каждое выполнение увеличивает цену, и результат меняется.
Идемпотентность позволяет системе быть устойчивой к ошибкам и повторам — если запрос случайно повторится, это не приведет к нежелательным изменениям.
2024-11-13 18:53:59 +03:00
**Примеры реализации:**
- [[highload/Идемпотентность на базе уникального идентификатора|Идемпотентность на базе уникального идентификатора]]
2024-11-13 18:53:59 +03:00
- Логика приложения устроена таким образом, что выполнение запроса с одними и теми же параметрами всегда приводит к одному и тому же результату.
2024-09-11 21:28:43 +03:00
***
## Мета информация
**Область**:: [[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]]
**Родитель**::
**Источник**::
**Создана**:: [[2024-09-11]]
**Автор**::
### Дополнительные материалы
2024-09-14 23:38:42 +03:00
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
2024-11-13 18:53:59 +03:00
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
- [[Идемпотентность на базе уникального идентификатора]]
<!-- SerializedQuery END -->