diff --git a/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/ActivationRuleGroup.java b/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/ActivationRuleGroup.java
index ba7369d..7c72830 100644
--- a/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/ActivationRuleGroup.java
+++ b/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/ActivationRuleGroup.java
@@ -33,6 +33,8 @@ import java.util.TreeSet;
* rule and ignores other rules in the group (XOR logic).
* Rules are first sorted by their natural order (priority by default) within the group.
*
+ * This class is not thread-safe.
+ *
* @author Mahmoud Ben Hassine (mahmoud.benhassine@icloud.com)
*/
public class ActivationRuleGroup extends CompositeRule {
diff --git a/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/CompositeRule.java b/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/CompositeRule.java
index 70a6633..b6d506b 100644
--- a/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/CompositeRule.java
+++ b/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/CompositeRule.java
@@ -35,6 +35,9 @@ import java.util.TreeSet;
/**
* Base class representing a composite rule composed of a set of rules.
+ *
+ * This class is not thread-safe.
+ * Sub-classes are inherently not thread-safe.
*
* @author Mahmoud Ben Hassine (mahmoud.benhassine@icloud.com)
*/
diff --git a/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/ConditionalRuleGroup.java b/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/ConditionalRuleGroup.java
index 3167c0c..aa797ca 100644
--- a/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/ConditionalRuleGroup.java
+++ b/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/ConditionalRuleGroup.java
@@ -37,6 +37,8 @@ import java.util.Set;
* priority acts as a condition: if the rule with the highest priority evaluates
* to true, then we try to evaluate the rest of the rules and execute the ones
* that evaluate to true.
+ *
+ * This class is not thread-safe.
*
* @author Dag Framstad (dagframstad@gmail.com)
*/
diff --git a/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/UnitRuleGroup.java b/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/UnitRuleGroup.java
index af5b2d6..3c794cc 100644
--- a/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/UnitRuleGroup.java
+++ b/easy-rules-support/src/main/java/org/jeasy/rules/support/composite/UnitRuleGroup.java
@@ -29,6 +29,8 @@ import org.jeasy.rules.api.Rule;
/**
* A unit rule group is a composite rule that acts as a unit: Either all rules are
* applied or nothing is applied (all or nothing semantic).
+ *
+ * This class is not thread-safe.
*
* @author Mahmoud Ben Hassine (mahmoud.benhassine@icloud.com)
*/