Saturday, January 26, 2008

Drools Success Stories - Seattle Code Camp V3.0

Kelvin Meeks just did a presentation for the Seattle Code Camp V3.0, this presentation is available here.

The interesting part is where he quotes his success stories with Drools, so I thought i'd quote that here:
  • "We are using Drools VERY successfuly around 3 years (We started with version 2.x). And it has being so usefull that now we have a very big system running on more than one customer in telecom market.
  • Currently we do have a server running around 300 rules, where we assert millions of facts at once. The objective is to guide and rate telecom usage events. We are able to apply those 300 rules over 20 Milion facts and get results (Guided and Rated) around 1 hour( Note: First we have to read many binary files, perform a charset conversion on data, load it in our object model, assert objects in working memory, apply around 200 rules to enrich the data, assert again in a new working memory, and rate the events accessing external RDBMS databases - caching results of course)."
  • "We tested several deployment and architecture variants (esp. for batch processing), with <100 and <10 facts for each data-row within our batches, but a few million rows. Worked out fine.
  • "We deployed a Drools based solution to a client in the pharmaceutical distribution world (Fortune 100 company :-). We used Drools to power the decisions an interactive voice ordering system. A small number of rules initially but growing constantly



  1. A few comments about the presentation. On slide 52-53, it makes statements that could be misinterpreted and lead people to think ruleset size has a direct impact on performance.

    What matter most is the RETE network topology of the ruleset. If I have 5000 rules in a ruleset, but there's no joins in any of the rules, the primary factor is the number of nodes for each object type. I've blogged about this in the past and many people mistakenly think RETE scales linearly with respect to ruleset size. That is completely untrue and wrong.

    The presentation doesn't make that statement, but it could easily give readers the wrong impression. The presentation would be better if that was explained in greater detail or simply left out completely. I provide plenty of examples on my blog that explain how and when the network topology affects performance. Feel free to use anything on my blog to fill out slides 52-53. No need to cite my blog.

  2. Thanks for your help in clarifying my understanding of the performance impact of ruleset size.

    I believe the most recent update of the presentation may have renumbered the slides you referenced (perhaps slide 58-60 are now the ones you meant?)

    Certainly I am still learning about Drools, so I appreciate your feedback.

  3. From: Kelvin Meeks Sent: Sunday, January 27, 2008 1:42 PM
    To: 'Mark Proctor'
    Subject: RE: fyi - Seattle Code Camp V3.0 January 26,27, 2008 - Introduction to Drools presentation


    Just a clarification on your blog post:

    I was quoting the Drools blog:

    not my success story :)

    My experience giving the presentation was helpful in teaching me humility - there is so much that I still have to learn about Drools - and the need to develop a deeper understanding of the core, examples, etc.