This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 3e658107181 docs: add automated remediation guardrails to retry docs
(#67705)
3e658107181 is described below
commit 3e65810718168c9a441ec83ed0d28e71e0b9daab
Author: 백형준 <[email protected]>
AuthorDate: Mon Jun 22 15:55:28 2026 +0900
docs: add automated remediation guardrails to retry docs (#67705)
* Add automated remediation guardrails to retry docs
* chore(docs): trigger CI after local docs verification
* docs: add cooldown to spelling wordlist
* chore(docs): retrigger CI after spelling fix
---
.../docs/howto/dag-level-retry-via-callback.rst | 19 +++++++++++++++++++
docs/spelling_wordlist.txt | 1 +
2 files changed, 20 insertions(+)
diff --git a/airflow-core/docs/howto/dag-level-retry-via-callback.rst
b/airflow-core/docs/howto/dag-level-retry-via-callback.rst
index d9f469964d0..d967e8f2d10 100644
--- a/airflow-core/docs/howto/dag-level-retry-via-callback.rst
+++ b/airflow-core/docs/howto/dag-level-retry-via-callback.rst
@@ -198,6 +198,25 @@ it from the give-up branch of your ``on_failure_callback``
before returning.
see duplicate API calls. For stricter guarantees, use a backend with
compare-and-swap semantics.
+Guarding automated remediation Dags
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Dag-level retry patterns can also be used in automated remediation Dags that
+run actions affecting external systems, such as clearing failed work, replaying
+messages, or restarting an external job. These actions should have guardrails
+so that a persistent failure does not cause the same recovery action to run
+repeatedly across Dag runs.
+
+Pools can limit how many recovery tasks run at the same time, but they do not
+limit how often the same recovery action is attempted. For automated
remediation
+workflows, consider adding a small cooldown marker for each target and a
maximum
+automatic action count before requiring manual review.
+
+For small guard values, such as a cooldown timestamp or attempt counter, an
+Airflow Variable may be sufficient. Do not use Variables as a high-volume state
+store or as a strongly consistent locking mechanism. If the workflow needs
+atomic updates, strict concurrency control, or many per-target state records,
+use an external store designed for that purpose.
.. _clear-retry-caveats:
diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt
index 145c091e600..133c37b413b 100644
--- a/docs/spelling_wordlist.txt
+++ b/docs/spelling_wordlist.txt
@@ -312,6 +312,7 @@ ContainerPort
contentUrl
contextmgr
contrib
+cooldown
copyable
CoreV
coroutine