At Oracle, we work with the largest enterprises around the world. Recently, more customers than ever have been asking us how to use Intelligent Advisor within an architecture built around an event-streaming platform. Many organizations are using Apache Kafka as the backbone of an enterprise architecture modernization initiative, striving to eliminate central processing bottlenecks and to deliver more agility in meeting new business requirements.
In an event-driven architecture there are typically event producers that write information into event streams and event consumers which read from those streams and perform actions in response to them. Many event consumers are also producers and need to make decisions when processing and generating other events. In this post we’ll look at two examples of how Intelligent Advisor can be used by event consumers and producers to add reliable flexibility to a modern event-driven enterprise architecture.
Event-streaming for government benefit calculations
When calculating eligibility for a government benefit payment, such as unemployment or housing assistance, any change to an individual’s income and living situation can impact that eligibility and the amount of benefit they should be paid. Public sector institutions need to get these payments right, and in a timely fashion. The calculations also need to change frequently to reflect the latest legislated payment rates, emergency provisions due to disasters, and other factors.
In an event driven architecture, any change in a household’s circumstances can be written to an event stream to be picked up by one or more stages of the benefit calculation process. One event type might be for changes in the number of children in a household. Another might be for each salaried individual’s monthly income as reported by employers. A consumer of the stream might listen for one or both of these event types.
That consumer could choose to recalculate all benefit payments immediately whenever the number of children in a household changes, also using the latest wage information when making that calculation. That consumer might then write out (produce) the new payment amount to a stream that will be consumed by the payment system.
Wage-only events without other changes in circumstances might be handled differently. The event consumer could have rules controlling when wage changes trigger benefit recalculations. If the amount of income goes up in one month, it might not recalculate the benefit amount immediately, instead choosing to wait to see if the income stays high in the following month before recalculating and potentially reducing the overall benefit payment.
Oracle Intelligent Advisor fits cleanly into this event-driven model. In response to an event, a consumer can pass household data to Intelligent Advisor to decide what processing should be performed, raising additional events to indicate the required processing depending on the results returned. Similarly, any event consumer can call Intelligent Advisor to perform full eligibility determinations and payment calculations.
The flexibility of an event driven architecture in combination with Intelligent Advisor allows the business logic to be cleanly separated from the flow of data, allowing timely and low risk updates to a business process and tailoring those processes to give the best customer experience in each case.
Event-streaming for banking regulatory risk assessment
A second example is in banking organizations that must comply with a wide array of regulations designed to address concerns like money laundering and international tax avoidance.
As customers are making deposits or transfers, opening new accounts, or information is being shared from partner organizations, financial institutions must assess the level of risk involved with each customer against a patchwork of international, national and industry rules and regulations.
Using an event broker as the clearing house for notifications about customer activities and information updates allows event consumers to decide what level of risk assessment is required in each case and either immediately perform that assessment or raise further events to be consumed by other processes.
Consider someone transferring money from one country to another. The receiving financial institution needs to apply all anti-money laundering and other regulations to avoid potentially large fines. To ensure a seamless customer experience, the scheduled transfer can be accepted immediately, and the information about the transfer can be posted to the event stream. A event consumer responsible for assessing transactional risk might then look at when that person last had a direct conversation with a compliance officer. If it’s more than two years ago and the amount of the transfer is over a certain amount, the rules might indicate that another compliance officer conversation is needed – raising an event that triggers an email to the customer asking them to call in to verify their latest details and reasons and sources of income for their large transfer.
Another process might consume the same transfer event to compare the transfer to other similar ones made by the customer and with transfers between other accounts held by closely related customers. It might need various rules to determine whether this transfer needs to be flagged for review by a risk team member.
In either case, rules written in Intelligent Advisor provide a convenient way to encapsulate the risk assessment logic and to automate the internal policies put in place by the financial institution to ensure they stay in compliance with the latest regulatory requirements. In response to any event, Intelligent Advisor can be invoked with the relevant event and customer information to perform the needed assessment including returning an audit trail of exactly how any risk assessment conclusions were reached. The responses can be written by the original event consumer as other events to indicate any required follow up actions.
Technical approach
Oracle Intelligent Advisor provides decision web service APIs that accept structured customer data and return the results of assessing that data through a set of rules. These APIs support compact data formats such as JSON and are optimized for both single and multiple case processing, including through a simple REST-style interface.
In the case of government benefit calculations, a set of related decision web services might all accept household information, and each one might perform a different role in determining benefit eligibility and payment amounts. One might simply determine which government benefits a household is eligible for. While other decision web services might each perform the detailed calculations necessary to determine the actual amount of monthly payment of each individual benefit.
In the financial institution risk assessment case, one decision web service might accept data about an individual transaction, as well as the currencies and parties involved, to check whether it is over certain globally mandated reporting thresholds. Another decision web service might be passed detailed compliance history on the particular customer that initiated the transaction to assess whether more detailed assessment by an audit team is required.
The key design pattern is that event consumers can invoke one or more Intelligent Advisor decision web services at any time, and the results from each decision web service call can then be posted back to an event stream for further processing. This ensures a continuous and decoupled flow of assessments related to each customer.
Audit reports can also be retrieved that describe how decisions were reached and posted to a specific audit event topic. Those audit reports can then be stored off in a system of record for later review in the case there is a question in the future about how particular decisions were reached.
Summary
Using Intelligent Advisor to provide decision web services within an event-driven enterprise architecture provides many benefits:
- Cleanly separate information about when and how each customer’s situation is changing from the rules that decide what to do about those changes.
- Build decision web services of any size and complexity that can be maintained by business and policy experts, without impacting the event processing architecture.
- Automatically generate an audit trail of how each decision is made, pushing it into an event stream of its own to allow persistent storage for later review.
All the capabilities mentioned in this blog post are available today. For more information on Intelligent Advisor start here: https://www.oracle.com/cx/service/intelligent-advisor/