ilona analytics uses inference rules to analyse events as they arrive. A rule evaluates evidence from the event and optionally, supporting evidence from application services. An application service can be a preexisting business service, as simple as a query against a data store, as complex as a neural network analysis.
Inference rules are processed by an inference engine, decoupling the business logic from the underlying deployment environments - real time, near real time and batch. Inference rules are packaged into rule sets, which are version controlled. A rule set can be activated or deactivated at any time. Active analyses continue to use the rule set version to which they are bound, new analyses use the currently activated version. New rule set versions can be safely rolled out to nodes in a cluster without down time, enabling 24 * 7 operation.
Most rules need only consider evidence from the current event, often with supporting evidence obtained from an application service.
Consider a simplified rule to prevent a bank account becoming overdrawn. The arriving event contains transaction data including the account identifier and the sum to be withdrawn. An application service is invoked, passing the account identifier, to obtain the current balance. The rule is triggered if the current balance minus the sum to be withdrawn is less than zero.
More sophisticated analyses need to consider evidence from the current event together with those from preceding events. This is known as Complex event processing (CEP).
Consider how a criminal might extract all of the funds from a bank account without knowing what funds are available with just the simplified rule above in place. An optimal strategy is to recursively withdraw an amount, double it if the withdrawal succeeds and halve it if the withdrawal fails, until all withdrawals fail because the account is empty. CEP rules can detect and halt such anomalous behaviour.
Valuable as they are, traditional CEP algorithms are expensive. Most require the state of previous event analyses be maintained for use by subsequent analyses, when maintaining sessions state is an anathema to delivering performance at scale. ilona analytics delivers highly scalable complex event processing using algorithms that avoid this bottleneck. The processing of rules applicable to successor events is activated just-in-time only when required.
For example, if a rule contains a condition requiring it to have been satisfied by four previous events, the previous conditions will only be evaluated once the fifth event is received. This avoids the cost of evaluating and retaining the results of the previous four events until required by the fifth, should it occur. Near real time processing enables further optimisations. For example idle capacity is used to preemptively schedule analyses as there is zero cost in doing so.
Let's talk! Explore with us how ilona analytics can apply the power of real time analytics to enhance your business.