{
    "componentChunkName": "component---src-templates-note-note-js",
    "path": "/notes/idempotency",
    "result": {"data":{"mdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"important in \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/atleast-once\",\n    \"title\": \"atleast-once\"\n  }, \"atleast-once\"), \" type to make sure that the double payment deduction or double increments don't happen.\"), mdx(\"p\", null, \"no additional effect if the same endpoint is called more than once with the same input parameters.\"), mdx(\"p\", null, \"idempotency keys which is more like a hash of the critical parameters which decide that it is an unique transaction. the target system/service should use this key to be stored in a column which has unique constraint applied at the database level.\"), mdx(\"p\", null, \"different types of \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/acknowledgement-strategies\",\n    \"title\": \"acknowledgement strategies\"\n  }, \"acknowledgement strategies\"), \"\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"atleast once \"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"atmax once \"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"exactly once\")));\n}\n;\nMDXContent.isMDXComponent = true;","inboundReferences":[{"id":"8a028063-9570-54ef-abac-35332ccdc677","slug":"Idempotence"}]}},"pageContext":{"slug":"idempotency","node":{"childMdx":{"slug":"idempotency"}}}},
    "staticQueryHashes": []}