Drools has been historically used (and will most likely continue to be used) to cover many different use cases. Since, as a framework, it acts as a behavior injection component, we can use it to inject all sorts of logic anywhere in our applications. Since we cannot cover all possible types of integration, we will try to cover the most common cases here, and discuss the natural evolution that is usually seen for Drools integration in diverse applications.
The first most common step for integrating Drools is usually embedding its dependencies and code inside our own application and using it as a library.
This is usually the first scenario for integrating Drools with our own apps because it is the quickest way to start using Drools. We just need to add the right dependencies and start using the APIs directly in the locations we want. The following figure shows this integration as it happens in the first stage: