A method for performing real-time analytics using a business rules engine on real time heterogeneous materialized data views is disclosed. The method comprises processing of rows produced by views corresponding to events. The rows are processed according to business rules by a view engine. Views with conditions equivalent to rule conditions are subscribed to by a rule engine, which outputs action messages corresponding to the rule condition. Where the rule condition is satisfied, a statement to that effect is sent, with any available reportlets, to an alert engine. The alert engine handles alert states corresponding to the action statement, saves any corresponding reportlets, and generates a message to fire an alert to a notification engine. The notification engine formats the alert and sends the alert by a selected medium, such as email, a webservice call, or another network protocol.
A method comprising:
detecting an event within a real-time stream of data while said real-time stream is received from an external system prior to storing said event in a database;
after detecting said event, materializing a real-time view of said event as one or more rows within a stream of rows;
probing into said stream of rows, wherein said probing comprises subscribing to a plurality of hidden views automatically generated in response to said stream of rows, wherein a condition of one of said plurality of hidden views is equivalent to a condition of one of a plurality of business rules;
generating an action statement, wherein said generating of said action statement comprises:
determining that said action statement comprises a 'holds for' clause; and
upon said determining that said action statement comprises a 'holds for' clause, handling said action statement according to said 'holds for' clause, wherein said 'holds for' clause selectively forestalls said generating until a particular event occurs, and cancels said generating when said particular event does not occur during a specified time duration;
using a plurality of user-defined dynamic specifications, wherein each individual specification sets forth a change to be detected in said real time materialized view of said event and also a corresponding action to be taken in response to said change; and
upon detecting said change set forth by at least one user-defined dynamic specification, triggering said corresponding action of said at least one specification.