diff --git a/rule-engines/evrete/pom.xml b/rule-engines/evrete/pom.xml
new file mode 100644
index 0000000000..819a912c43
--- /dev/null
+++ b/rule-engines/evrete/pom.xml
@@ -0,0 +1,35 @@
+
+
+ 4.0.0
+ com.baeldung.evrete
+ evrete
+ 1.0
+ evrete
+
+
+ 2.1.04
+
+
+
+ com.baeldung
+ rule-engines
+ 1.0.0-SNAPSHOT
+
+
+
+
+
+ org.evrete
+ evrete-core
+ ${evrete.version}
+
+
+
+ org.evrete
+ evrete-dsl-java
+ ${evrete.version}
+
+
+
\ No newline at end of file
diff --git a/rule-engines/evrete/src/main/java/com/baeldung/evrete/introduction/IntroductionAJR.java b/rule-engines/evrete/src/main/java/com/baeldung/evrete/introduction/IntroductionAJR.java
new file mode 100644
index 0000000000..287d083311
--- /dev/null
+++ b/rule-engines/evrete/src/main/java/com/baeldung/evrete/introduction/IntroductionAJR.java
@@ -0,0 +1,47 @@
+package com.baeldung.evrete.introduction;
+
+import com.baeldung.evrete.introduction.model.Customer;
+import com.baeldung.evrete.introduction.model.Invoice;
+import org.evrete.KnowledgeService;
+import org.evrete.api.Knowledge;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.*;
+
+public class IntroductionAJR {
+ public static void main(String[] args) throws IOException {
+ ClassLoader classLoader = IntroductionAJR.class.getClassLoader();
+ KnowledgeService service = new KnowledgeService();
+ URL rulesetUrl = classLoader.getResource("rules/SalesRuleset.java");
+ Knowledge knowledge = service.newKnowledge(
+ "JAVA-SOURCE",
+ rulesetUrl
+ );
+
+ List customers = Arrays.asList(
+ new Customer("Customer A"),
+ new Customer("Customer B"),
+ new Customer("Customer C")
+ );
+
+ Random random = new Random();
+ Collection