Rules Engine are being increasingly used in the enterprise applications to write complex business processing tasks in configurable manner without sacrificing performance. This session will focus on sharing experiences of using Open source Drools rules engine to write business logic for some banking applications. The session will also explore ways to write DSLs to make business rules very end user friendly and use of decision tables for users to give rules in excel
Modern data lakes are now built on cloud storage, helping organizations leverage the scale and economics of object storage while simplifying overall data storage and analysis flow
You may be hearing a lot of buzz around functional programming. For example, Java 8 recently introduced new features (lambda expressions and method references) and APIs (Streams, Optional and CompletableFutures) inspired from functional ideas such as first-class functions, composition and immutability.
However, what does this mean for my existing codebase?
In this talk we show how you can refactor your traditional object-oriented Java to using FP features and APIs from Java 8 in a beneficial manner.
We will discuss:
- How to adapt to requirement changes using first-class functions
- How you can enhance code reusability using currying
- How you can make your code more robust by favouring immutability over mutability
- How you can design better APIs and reduce unintended null pointer exceptions using an optional data type"
Best practices in deploying IBM Operation Decision Manager Standard 8.8.0Pierre Feillet
This session was presented at Interconnect 2016 in session bdm-4361. It covers ODM 8.8.0 version. This deck explains the basics of ODM architecture and guides deployment for DevOps.
Domain Driven Design and Hexagonal Architecture with RailsDeclan Whelan
You know that Domain Driven Design, Hexagonal Architecture, and the Single Responsibility Principle are important but it’s hard to know how to best apply them to Rails applications. Following the path of least-resistance will get you in trouble. In this session you will learn a way out of the “fat model, skinny controller” hell. You will leave with a roadmap to guide your design based on concepts from Domain Driven Design and Hexagonal Architecture.
Introducing Saga Pattern in Microservices with Spring StatemachineVMware Tanzu
SpringOne 2020
Introducing Saga Pattern in Microservices with Spring Statemachine
Omotola Awofolu, Senior Platform Architect/Solution Engineer at VMware
In KDD2011, Vijay Narayanan (Yahoo!) and Milind Bhandarkar (Greenplum Labs, EMC) conducted a tutorial on "Modeling with Hadoop". This is the second half of the tutorial.
Developing Complex Business Rules with Drools IntegrationBonitasoft
Create rich and dynamic rule driven business process applications with the Bonita Open Solution BPM Suite.
Learn how to add business rules to your process transitions easily with decision tables in the Bonita Studio for process modeling, and for more complex rules, use the Drools Connector to call shared rules.
Modern data lakes are now built on cloud storage, helping organizations leverage the scale and economics of object storage while simplifying overall data storage and analysis flow
You may be hearing a lot of buzz around functional programming. For example, Java 8 recently introduced new features (lambda expressions and method references) and APIs (Streams, Optional and CompletableFutures) inspired from functional ideas such as first-class functions, composition and immutability.
However, what does this mean for my existing codebase?
In this talk we show how you can refactor your traditional object-oriented Java to using FP features and APIs from Java 8 in a beneficial manner.
We will discuss:
- How to adapt to requirement changes using first-class functions
- How you can enhance code reusability using currying
- How you can make your code more robust by favouring immutability over mutability
- How you can design better APIs and reduce unintended null pointer exceptions using an optional data type"
Best practices in deploying IBM Operation Decision Manager Standard 8.8.0Pierre Feillet
This session was presented at Interconnect 2016 in session bdm-4361. It covers ODM 8.8.0 version. This deck explains the basics of ODM architecture and guides deployment for DevOps.
Domain Driven Design and Hexagonal Architecture with RailsDeclan Whelan
You know that Domain Driven Design, Hexagonal Architecture, and the Single Responsibility Principle are important but it’s hard to know how to best apply them to Rails applications. Following the path of least-resistance will get you in trouble. In this session you will learn a way out of the “fat model, skinny controller” hell. You will leave with a roadmap to guide your design based on concepts from Domain Driven Design and Hexagonal Architecture.
Introducing Saga Pattern in Microservices with Spring StatemachineVMware Tanzu
SpringOne 2020
Introducing Saga Pattern in Microservices with Spring Statemachine
Omotola Awofolu, Senior Platform Architect/Solution Engineer at VMware
In KDD2011, Vijay Narayanan (Yahoo!) and Milind Bhandarkar (Greenplum Labs, EMC) conducted a tutorial on "Modeling with Hadoop". This is the second half of the tutorial.
Developing Complex Business Rules with Drools IntegrationBonitasoft
Create rich and dynamic rule driven business process applications with the Bonita Open Solution BPM Suite.
Learn how to add business rules to your process transitions easily with decision tables in the Bonita Studio for process modeling, and for more complex rules, use the Drools Connector to call shared rules.
Drools is a Rule Engine that uses the rule-based approach to implement an Expert System
The inference engine matches the rules against the facts (objects) in memory and can match the next set of rules based on the changed facts.
Please use the presentation and the source code referred in the presentation to get started on what a rule engine is and how to use JBoss Drools for inference based rules using the Java programming language.
Palestra que apresentei na Campus Party em 30/1/2014 no palco Hypatia falando sobre as principais métricas para o começo, meio e fim da vida de uma Startup e propondo uma forma de aplicar o ciclo de feedback e contabilidade da inovação nos seus projetos.
Criar uma conta AWS
Criar um usuário IAM e habilitar MFA (Fator de Multi Autenticação)
Criar chaves SSH (utilizadas para acessar suas instâncias)
Criar um Security Group (firewall)
Iniciar uma instância EC2 (máquina virtual)
Neste slide, que tem um vídeo complementar publicado no YouTube, mostramos os conceitos e de forma prática como iniciar na AWS:
1. Criando a sua conta
2. Conectar na instância EC2
3. Utilizar o S3 (armazenamento conectado à internet)
4. Criar um alarme CloudWatch
5. Backup e restauração da sua instância EC2
6. Visualizar os custos AWS e configurar alertas de gastos
How a major industrial group automated its purchase order processesAlain Bezançon
A major industrial group with 40,000 employees across 90 countries needed to automate complex purchase order processes. Hundreds of business rules managed in a third-party
database dynamically applied at process runtime.
Your enterprise can become truly intelligent
-------------------------------------------
Get there with Red Hat’s JBoss® Enterprise Business Rules Management System (BRMS), a key component of our vision for the intelligent, integrated enterprise. It delivers the power of business rules, complex event processing, and business process management in a single open source distribution—all accessible from a common set of authoring tools.
JBoss Enterprise BRMS supports a broad range of decision-management and process-driven applications with a unique combination of open source technologies:
- jBPM5 business process management
- Drools business rules
- Drools Fusion complex event processing
Build rule, event, and process-driven applications that scale across the enterprise
-------------------------------------------
Discover best practices for constructing BRMS applications that support large numbers of rules operating on big data. We’ll illustrate common use cases with real-world case studies and give you practical tips for estimating computing resource requirements.
IBM Smarter Business 2012 - Headless BPMIBM Sverige
A major financial institution needed to improve its global pricing calculator. They saw the opportunity to implement a solution that included approval processes. They also wanted to be able to scale the solution up and include their extensive offshore centers across the globe. The project, with consultants from Ascendant Technology and implementing IBM Software, was instructive. During this session we will outline the important opportunities available should you want to scale up Business Process Management projects.
Talare: Todor Mollov, Ascendant Technology
Besök http://smarterbusiness.se för mer information.
DevOps Fest 2020. immutable infrastructure as code. True story.Vlad Fedosov
In this talk I’ll explain how we went from classic Pet servers to immutable infrastructure, fully described as code, with Cattle instances. I’ll also share which tools we use and how we evolved our experience with them.
A talk I presented at vNext Orange County, 25th of February 2013 about the importance of delivering business value and how you as a developer can much easier meet the requirements of the end user by applying practices like DDD and utilizing things like CQRS and MVVM to help decouple your software and focus better.
A talk I presented at Southern California Team System, 26th of February 2013 about the importance of delivering business value and how you as a developer can much easier meet the requirements of the end user by applying practices like DDD and utilizing things like CQRS and MVVM to help decouple your software and focus better.
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTEtsurdilovic
This session will introduce JBoss Drools - Popular business rules engine and JBoss Drools Fusion - a complex event processing engine which is an extension to business rules.
Business Rules bring in a new paradigm of programming which helps effectively separate business policies and application code. Enterprises can now build agile applications that quickly react to change in market conditions or internal operations.
Bringing in complex event processing into the same paradigm, these applications can now react to real time events in the business environment. Essentially with the use of Business Rules and CEP enterprise applications can be lot more agile than ever before.
The Future of the Rules module in Drupal 8Stan Ascher
This is the a briefing about all the information I could find regarding the Drupal Rules module in Drupal 8. I give a status update to on the status of development and give a sneak peak into the UI
Maintaining large-scale distributed systems is a herculean task and Hadoop is no exception. The scale and velocity that we operate at Rocket Fuel presents a unique challenge. We observed 5 fold PB growth in our data and 5 fold number of machines, all in just a year’s time. As Hadoop became a critical infrastructure at Rocket Fuel, we had to ensure scale and high availability so our reporting, data mining, and machine learning could continue to excel. We also had to ensure business continuity with disaster recovery plans in the face of this drastic growth. In this presentation, we will discuss what worked well for us and what we learned 9the hard way). Specifically, we will (a) describe how we automated installation and dynamic configuration using Puppet and InfraDB (b) describe the performance tuning for scaling Hadoop (c) talk about the good, bad, and ugly of scheduling and multi-tenancy (d) detail some of the hard-fought issues (e) brief our Business-Continuity Plans and Disaster Recovery (f) touch upon how we monitor our Monster Hadoop cluster, and finally, (g) share our experience of Yarn-at-Scale at Rocket Fuel.
If everyone write their documents with the intent that they be standardized and converted, conversion to S1000D would be easy. But the reality is that most legacy data lacks the details needed for a full conversion or contains anomalies and irrelevant text. This leads us to the question one must ask: should I convert, rewrite, or manually convert the legacy data? In this presentation, we will attempt to answer this question by reviewing:
o A very quick introduction to S1000D conversions
o What the technical headaches are
o Whether to convert or rewrite
o Planning for a good conversion experience
o What the timeline looks like
o Some tools to help
If your enterprise is on its journey of cloud adoption, and you are running proof of concept (POC) projects, there are a number of tools which can help you with cloud cost management, including tracking, chargeback and forecasting.
In this webinar, we are going to walk through live examples of using a number of tools to help with cloud cost management. These include PlanForCloud, a free cloud cost forecasting simulation engine, Enterprise Reporting, a fully features cost management and reporting service and the cost snapshot view from the RightScale Cloud Management dashboard.
Join two of RightScale's product managers and learn step by step how you can leverage these tools in your enterprise to make your cloud strategy successful starting today.
A talk I presented at Grenland Web, 24th of January 2013 about the importance of delivering business value and how you as a developer can much easier meet the requirements of the end user by applying practices like DDD and utilizing things like CQRS and MVVM to help decouple your software and focus better.
3rd party application integration with tally erp 9 | Tally Remote Support | ...stannventures.Pvt.Ltd
For more information about this PDF file. Please click here http://www.tallyspot.com
Ideal spot for a obtain Tally 9 ERP and download free Tally.ERP 9 versions. Up-grade Tally
Accounting Software & .NET Subscription, Advanced Web Interface Accounting Software for Asia & Most
ERP Software Products. Import data from tally & Data Connectivity to Tally.ERP 9 Import.
Lesson 9 - Resisting Temptation Along the Way.pptxCelso Napoleon
Lesson 9 - Resisting Temptation Along the Way
SBs – Sunday Bible School
Adult Bible Lessons 2nd quarter 2024 CPAD
MAGAZINE: THE CAREER THAT IS PROPOSED TO US: The Path of Salvation, Holiness and Perseverance to Reach Heaven
Commentator: Pastor Osiel Gomes
Presentation: Missionary Celso Napoleon
Renewed in Grace
In Jude 17-23 Jude shifts from piling up examples of false teachers from the Old Testament to a series of practical exhortations that flow from apostolic instruction. He preserves for us what may well have been part of the apostolic catechism for the first generation of Christ-followers. In these instructions Jude exhorts the believer to deal with 3 different groups of people: scoffers who are "devoid of the Spirit", believers who have come under the influence of scoffers and believers who are so entrenched in false teaching that they need rescue and pose some real spiritual risk for the rescuer. In all of this Jude emphasizes Jesus' call to rescue straying sheep, leaving the 99 safely behind and pursuing the 1.
What Should be the Christian View of Anime?Joe Muraguri
We will learn what Anime is and see what a Christian should consider before watching anime movies? We will also learn a little bit of Shintoism religion and hentai (the craze of internet pornography today).
The Good News, newsletter for June 2024 is hereNoHo FUMC
Our monthly newsletter is available to read online. We hope you will join us each Sunday in person for our worship service. Make sure to subscribe and follow us on YouTube and social media.
Exploring the Mindfulness Understanding Its Benefits.pptxMartaLoveguard
Slide 1: Title: Exploring the Mindfulness: Understanding Its Benefits
Slide 2: Introduction to Mindfulness
Mindfulness, defined as the conscious, non-judgmental observation of the present moment, has deep roots in Buddhist meditation practice but has gained significant popularity in the Western world in recent years. In today's society, filled with distractions and constant stimuli, mindfulness offers a valuable tool for regaining inner peace and reconnecting with our true selves. By cultivating mindfulness, we can develop a heightened awareness of our thoughts, feelings, and surroundings, leading to a greater sense of clarity and presence in our daily lives.
Slide 3: Benefits of Mindfulness for Mental Well-being
Practicing mindfulness can help reduce stress and anxiety levels, improving overall quality of life.
Mindfulness increases awareness of our emotions and teaches us to manage them better, leading to improved mood.
Regular mindfulness practice can improve our ability to concentrate and focus our attention on the present moment.
Slide 4: Benefits of Mindfulness for Physical Health
Research has shown that practicing mindfulness can contribute to lowering blood pressure, which is beneficial for heart health.
Regular meditation and mindfulness practice can strengthen the immune system, aiding the body in fighting infections.
Mindfulness may help reduce the risk of chronic diseases such as type 2 diabetes and obesity by reducing stress and improving overall lifestyle habits.
Slide 5: Impact of Mindfulness on Relationships
Mindfulness can help us better understand others and improve communication, leading to healthier relationships.
By focusing on the present moment and being fully attentive, mindfulness helps build stronger and more authentic connections with others.
Mindfulness teaches us how to be present for others in difficult times, leading to increased compassion and understanding.
Slide 6: Mindfulness Techniques and Practices
Focusing on the breath and mindful breathing can be a simple way to enter a state of mindfulness.
Body scan meditation involves focusing on different parts of the body, paying attention to any sensations and feelings.
Practicing mindful walking and eating involves consciously focusing on each step or bite, with full attention to sensory experiences.
Slide 7: Incorporating Mindfulness into Daily Life
You can practice mindfulness in everyday activities such as washing dishes or taking a walk in the park.
Adding mindfulness practice to daily routines can help increase awareness and presence.
Mindfulness helps us become more aware of our needs and better manage our time, leading to balance and harmony in life.
Slide 8: Summary: Embracing Mindfulness for Full Living
Mindfulness can bring numerous benefits for physical and mental health.
Regular mindfulness practice can help achieve a fuller and more satisfying life.
Mindfulness has the power to change our perspective and way of perceiving the world, leading to deeper se
The Chakra System in our body - A Portal to Interdimensional Consciousness.pptxBharat Technology
each chakra is studied in greater detail, several steps have been included to
strengthen your personal intention to open each chakra more fully. These are designed
to draw forth the highest benefit for your spiritual growth.
The Book of Joshua is the sixth book in the Hebrew Bible and the Old Testament, and is the first book of the Deuteronomistic history, the story of Israel from the conquest of Canaan to the Babylonian exile.
The PBHP DYC ~ Reflections on The Dhamma (English).pptxOH TEIK BIN
A PowerPoint Presentation based on the Dhamma Reflections for the PBHP DYC for the years 1993 – 2012. To motivate and inspire DYC members to keep on practicing the Dhamma and to do the meritorious deed of Dhammaduta work.
The texts are in English.
For the Video with audio narration, comments and texts in English, please check out the Link:
https://www.youtube.com/watch?v=zF2g_43NEa0
HANUMAN STORIES: TIMELESS TEACHINGS FOR TODAY’S WORLDLearnyoga
Hanuman Stories: Timeless Teachings for Today’s World" delves into the inspiring tales of Hanuman, highlighting lessons of devotion, strength, and selfless service that resonate in modern life. These stories illustrate how Hanuman's unwavering faith and courage can guide us through challenges and foster resilience. Through these timeless narratives, readers can find profound wisdom to apply in their daily lives.
5. Where Does It Fit
Parameterization
Code
Config Files
Database
Rules Engine
5
6. Why Should I Bother
• Many ways to define Rules
Flexibility & • Group rules and define priorities
Configurability • Plethora of functions that help in decisioning
Rule Engine
• User friendly and Business Like
Manageability • Better Tooling Support
• Easier Understanding & Visualization
• Just define your rules not execution details
Declarative v/s • Execution is handled by Rules Engine
Imperial • Sequencing and Re-entry
6
7. FUDs – Fear, Uncertainty and Doubt
• True, as compared to if-else statements in code
Slow • However, Rules are precompiled
• In Some Cases, execution is faster if designed correctly
• Yes, they do have a learning curve
Difficult • Start small and Limit the features to those you really need
• You don’t have to learn each feature and function offered
More • Yes, rules engine do need more space than a java class file
• Precompiled Rules form a Rete graph
Memory • Use stateless models where use case allows
• Stateful models – Follow the optimizations and mind your memory
• Commercial Tools can get expensive, e.g. Blaze and Jrules
Expensive • Open Source Drools has evolved over time, in its version 5.5
• Drools used in high volume, mission critical systems
7
8. When Should I Use a Rule Engine
IF (Requirements== expressed as rules)
IF (Rules == many OR complex OR changing frequently)
IF (Rules == managed separately from application code)
IF (memory != very low)
IF (Application == evolving)
IF (Developers == have skills OR ok with learning curve)
IF (Business Users == like to see / experiment with rules)
IF ( Additional Complexity < Benefits in Flexibility + Configurability)
THEN use Rules Engine
8
10. Jboss - Drools
Expert
• Main Rules Engine Component
• Have Stabilized after going through product cycles
• Highly Successful and widely used
Rule Flow (replaced by jBPM)
• Group into Rule sets and define flow chart to execute them
• Graphical Environment to define work flows
• jBPM using BPMN 2.0 is the way to go for any serious BPM
Guvnor
• Web Based GUI to manage the Rules
• Split out as separate component in V5
• Read Only in Production, but modify in test/UAT for business
Planner
• Resources– travelling salesman, scheduling, routing
• Heuristic Rules
• Relatively new
Fusion
• Event Processing- ESP / CEP use cases
• Concept of Sliding Time window
• Other products such as Esper and Twitter Storm
10
11. Drools Expert – Steps
• DRL, Decision
Define Tables, DSL
Compile • To Knowledge base
Create • Uses Knowledge base
Session
Insert • Causes Activations
Facts
Fire • RHS
Rules Executes
11
12. Real Use Case
Trades
Matching Engine Match Statuses
T1, T4, T3, T2
T1 C3
T2 C1 + C3
T3+T4 C4
Confirmation
C1, C2, C3, C4
100’s of Trades and Confirmations inflowing per second at peak hr
Flowing in any order, not necessarily one after the other
One trade can exactly match to one confirmation
A trade can match to more than one confirmation
One or more trades can match to one Confirmation
12
13. DRL – Drools Rules Language
rule "Perfect Match"
salience 100
when
t:Trade()
c:Confirm(qty == t.qty , confirmId == t.cusip , amt == t.amt , price == t.price )
then
log("Perfect Match for " + t.toString() + c.toString());
Match perfectMatch = new Match(t,c, "Perfect");
// retract perfect matches
retract(t);
retract(c);
end Trade to Confirm Matching
Why is this
The base language for Rules Definition blazing
All other Forms compile to this language fast ??
Rich and Versatile
Entire Syntax, features and Rules definition is available
Least User Friendly
13
14. DSL - Domain Specific Language
expander Match.dsl
rule "Exact Match Trade to Confirm"
when
Match Trade and Confirm
- on cusip with confirmId
- on amt
- on price
then
Log "Perfect Match“
Create Match with Status “Perfect”
Remove Matched Elements
end
This is real code not Pseudo code
DSL combines with grammar definition and translates to DRL
Very Easy to Understand for Users and Visualize
Power of creating new business vocabulary
Encourages reuse
14
15. Decision Table
RuleTable TradeRequests
NAME CONDITION
CONDITION ACTION ACTION ACTION ACTION ACTION ACTION
event:Event
event:Event
eventGroup
$param != null TradeRequest tr = ne
tr.setStartCaptureDate(DateUtils.getBusinessDate(event.get$1(), $2+1));
tr.setEndCaptureDate(DateUtils.getBusinessDate(event.get$1(), $2+1));
tr.setStartTradeDate(DateUtils.getBusinessDate(event.get$1(), $2));
tr.setEndTradeDate(Date
tr.setSettlementF
Trade Condition Event Start Capture End Capture Settlement
(Comment Column) Name Group Date Present Trade Type Date Date Traded After Traded Before Flag
TD < ED ; F = F IncOpenFail I effectiveDate Open Fails FreezeDate, 0 EffectiveDate, -1 "F"
TD < ED ; SD <= FD ; F = O IncRegOpen I effectiveDate Regular Open EffectiveDate, -1 FreezeDate, 0 EffectiveDate, -1 "O"
TD < ED ; FD < SD IncExtSet I effectiveDate Extended Settle EffectiveDate, -1 FreezeDate, 0 EffectiveDate, -1
ED<=TD ; SD <=FD ; CD <= FD IncShortSet I effectiveDate Short Settle EffectiveDate, 0 FreezeDate, 0 EffectiveDate, 0
TD < ED ; FD < PD IncAsOf I effectiveDate As of Trades FreezeDate, 1 EffectiveDate, -1
Corporate Actions
Excel columns are designated as Conditions or Actions
Top few control rows are hidden from users,
Control rows help translate the excel into DRL
Easy to understand for Users, once basic Excel formats are given
Fit for use cases where there is need for intense parameterization
15
16. Learning & Best Practices
Experiences, Usage Models, Performance
16
17. Real Life Experiences
Complex Matching Engines
• Multiple Engines used for various functional matching
• Performed at 600 transactions / sec on one instance of execution
• If the I/o (messaging / database) were commented, got 8k executions / sec
• Stateful models used, but memory was conversed through optimizations
Corporate Actions – Event Validations, Trade Extraction
• Stateless model that evaluates each event separately through set of rules
• 100’s of rules based on event types defined in Decision Tables
• Increase in number of rules barely dent the performance
• For 10k executions, 2 rules take 320 ms, and 100 rules take 328 ms
Risk Analysis & Calculations
• Calculations have lot of parameters, such as credit rating, product type, etc.
• Calculations segmented into small number of individual steps
• The decision of which formulae to use, was done by a Rules Engine
17
18. Usage Models
Synchronous Execution
Request – Response Style Your Rule
Application Engine
Can act on the decision immediately
Asynchronous Pipeline
Rule
Messaging Style Events Actions
Engine
Very scalable and resilient
In Process with the Application
Jar file as part of the application
Excellent for Stateless execution, as reduces I/o without increasing memory
Stateful executions are challenge in clustered environment & need memory sizing
Out of Process as a runtime component
Central Deployment & Management
Overheads in Communication, and hence affects performance
Could become bottleneck / central point of failure
Needs sophisticated scaling models (e.g. functional split based on Hash or some key)
18
19. Improving Performance ..1
Keep Separate Deployable Units rather than a giant rule engine component
Divide and Conquer
Use Stateless Sessions where Business case allows
You can cluster and load balance your services seamlessly
You can use in-process deployments easily
Limit the number of facts in Stateful Executions
The degradation is exponential beyond 400k objects in memory
If higher volumes anticipated, than plan for multi deployments using sharding concepts
Limit the Size of the objects checked in memory
Use DTO (Data Transfer Object) pattern
Use Batched Mode of Execution
Check in more objects if you can in one go into the memory
19
20. Improving Performance ..2
Use Drools only for decisions, not performing actual actions
Let the decisions be communicated to a downstream component or by the caller to Rules Engine
Avoid using evals(), --- use only as a last resort
The java code inside eval is difficult to optimize into rete tree
Work on aggregates where possible
Rather than Checking Individual facts into the memory
If you want to dig deeper
Read more on the Rete Algorithm
20
21. Development Tips
Use the IDE
Syntax Validations
DSL conversions
Drools Debugging
Use events
Understanding how rules activate and fire
Helpful for troubleshooting
Remember to turn off in production
Keep individual rules small, simple and atomic
Avoid cyclic triggering of rules when you update the facts
Use Agenda groups & Activation groups wherever applicable
21