3 Replies Latest reply on Apr 19, 2014 5:14 PM by Arif Mohammed

    Use of JBPM and Drools to build a near real time applications to process million of events a day

    João Pereira Newbie



      I'm not sure that this is the correct place to expose this, as I'm seeking opinions about a stack of technologies that are being recommended to me to build an application.

      Let me just give some background. My system will receive around 1 million (let's assume a peak of 15 events per second) of "external" events per day, coming from a mobile telecommunications network. The system will need to do some tasks depending on a series of simple rules applied to incoming event. Some of these tasks can be executed in parallel to increase throughput. These tasks generally involve updating some database and communicating with external services, where some type of orchestration is required.

      The business rules will not change frequently, nor the processes, i.e., which external services will be notified, maybe the body of requests to these external service need some change time to time.

      Now, I'm being asked to build such application using Jboss JBPM and Drools, mainly because there’s some lack of knowledge about these processes and rules, and people are trying go with very flexible application where they can design the processes and the rules to have the system doing what they want.

      JBPM and Drools are being recommended as the technologies to build such kind of application. I must also say that this system requires to be up 24/7 as it is critical to the business and it will require to update constantly the network elements to have the network running.

      Each event must be processed near real time, or as fast as possible and there is not manual tasks involved, everything should be automated.

      I read from JBPM 5 documentation that even if I design a business process with parallel activities, they will be technically executed in the same thread. Maybe JBPM was not designed to handle such type of requirements and that's why I'm seeking some advice from someone that built a system with similar requirements using JBPM and Drools and what challenges will I face doing this system with the recommended technologies.