IP Library Granted Patent US 12,326,776
Granted Patent B2
US 12,326,776 · App. 18/426,181 · Granted Jun 10, 2025

Computing systems and methods for creating and executing user-defined anomaly detection rules and generating notifications for detected anomalies

Inventors: Dhineshkumar Pachamuthu (Frisco, TX); Abdul Nafeez Mohammad (Chicago, IL); Vivek Mathew (Schaumburg, IL); Sara Bonefas (Chicago, IL); Brendan Sturm (Chicago, IL)
Assignee: Discover Financial Services
G06F11/0784G06F11/0727G06F16/2358G06F16/24568
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,326,776
App. No.
18/426,181
Granted
Jun 10, 2025
Kind
B2
Abstract

A computing platform may be installed with software technology for creating and executing user-defined anomaly detection rules that configures the computing platform to: (1) receive, from a client device, data defining a given anomaly detection rule that has been created by a user, wherein the given anomaly detection rule comprises at least one anomaly condition that is to be applied to at least one streaming event queue, (2) store a data representation of the given anomaly detection rule in a data store, (3) convert the data representation of the given anomaly detection rule to a streaming query statement, (4) iteratively apply the streaming query statement to the at least one streaming event queue, and (5) while iteratively applying the streaming query statement, make at least one determination that the at least one anomaly condition is satisfied and then cause at least one anomaly notification to be issued to the user.

Claims (70)

1. A computing platform comprising:

at least one processor;

at least one non-transitory computer-readable medium; and

program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the computing platform to:

monitor one or more source datasets for changes, wherein the one or more source datasets comprise a plurality of data records;

while monitoring the one or more source datasets for changes, detect changes to the one or more source datasets;

based on the detected changes, generate streaming events that each represents a respective change related to a respective data record within the one or more source datasets and each contains data that corresponds to underlying data contained within the respective data record;

populate the generated streaming events into one or more streaming event queues;

retrieve an anomaly detection rule that comprises at least one anomaly condition;

convert the anomaly detection rule to a streaming query statement;

apply, in a near real-time manner, the streaming query statement to at least one streaming event queue of the one or more streaming event queues;

while applying the streaming query statement to the at least one streaming event queue, make at least one determination that the at least one anomaly condition is satisfied; and

based on the at least one determination, cause at least one anomaly notification to be issued to a user.

2. The computing platform of claim 1 , wherein the at least one anomaly condition comprises parameters that define (i) a subset of streaming events within the at least one streaming event queue on which data analysis is to be performed, (ii) one or more data fields of the subset of streaming events on which data analysis is to be performed, and (iii) a form of data analysis that is to be performed on values of one or more data fields of the subset of streaming events.

3. The computing platform of claim 1 , wherein the at least one anomaly condition comprises an evaluation of whether an extent of a given subset of streaming events that contain a given value of a given data field satisfies a threshold extent.

4. The computing platform of claim 1 , wherein the at least one anomaly condition comprises an evaluation of whether a total or average value of a numerical data field across a given subset of streaming events satisfies a threshold value.

5. The computing platform of claim 1 , wherein the at least one anomaly condition comprises an evaluation of whether certain data values across given subsets of streaming events from two or more streaming event queues that have a particular relationship meet a certain threshold criteria.

6. The computing platform of claim 1 , wherein the anomaly detection rule further comprises at least one filter that is to be applied to the at least one streaming event queue before the at least one anomaly condition is applied.

7. The computing platform of claim 1 , wherein the program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the computing platform to cause the at least one anomaly notification to be issued to the user further comprise program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the computing platform to:

generate an anomaly event;

write the generated anomaly event to a given streaming event queue that is designated for anomaly events; and

based on the anomaly event and a data representation of the anomaly detection rule, generate a notification that is to be issued to the user.

8. The computing platform of claim 1 , wherein the computing platform maintains a schema for the at least one streaming event queue, and wherein the computing platform further comprises program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the computing platform to:

detect a request to update the schema;

determine that the request to update the schema involves removal of a data field; and

based on determining that the request to update the schema involves removal of the data field, decline to update the schema.

9. The computing platform of claim 1 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that, when executed by the at least one processor, cause the computing platform to:

before retrieving the anomaly detection rule:

cause a client device associated with a user to present an interface for creating an anomaly detection rule;

receive, from the client device, data defining the anomaly detection rule, wherein the received data is based on user input provided via the interface; and

store a data representation of the anomaly detection rule.

10. The computing platform of claim 1 , wherein the one or more source datasets are monitored and the changes to the one or more source datasets are detected utilizing a change data capture (CDC) engine.

11. The computing platform of claim 1 , wherein the streaming query statement comprises a KSQL or ksqlDB statement.

12. A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a computing platform to:

monitor one or more source datasets for changes, wherein the one or more source datasets comprise a plurality of data records;

while monitoring the one or more source datasets for changes, detect changes to the one or more source datasets;

based on the detected changes, generate streaming events that each represents a respective change related to a respective data record within the one or more source datasets and each contains data that corresponds to underlying data contained within the respective data record;

populate the generated streaming events into one or more streaming event queues;

retrieve an anomaly detection rule that comprises at least one anomaly condition;

convert the anomaly detection rule to a streaming query statement;

apply, in a near real-time manner, the streaming query statement to at least one streaming event queue of the one or more streaming event queues;

while applying the streaming query statement to the at least one streaming event queue, make at least one determination that the at least one anomaly condition is satisfied; and

based on the at least one determination, cause at least one anomaly notification to be issued to a user.

13. The non-transitory computer-readable medium of claim 12 , wherein the at least one anomaly condition comprises parameters that define (i) a subset of streaming events within the at least one streaming event queue on which data analysis is to be performed, (ii) one or more data fields of the subset of streaming events on which data analysis is to be performed, and (iii) a form of data analysis that is to be performed on values of one or more data fields of the subset of streaming events.

14. The non-transitory computer-readable medium of claim 12 , wherein the at least one anomaly condition comprises one of (i) an evaluation of whether an extent of a given subset of streaming events that contain a given value of a given data field satisfies a threshold extent, (ii) an evaluation of whether a total or average value of a numerical data field across a given subset of streaming events satisfies a threshold value, or (iii) an evaluation of whether certain data values across given subsets of streaming events from two or more streaming event queues that have a particular relationship meet a certain threshold criteria.

15. The non-transitory computer-readable medium of claim 12 , wherein the program instructions stored on the non-transitory computer-readable medium that, when executed by at least one processor, cause the computing platform to cause the at least one anomaly notification to be issued to the user further comprise program instructions that, when executed by at least one processor, cause the computing platform to:

generate an anomaly event;

write the generated anomaly event to a given streaming event queue that is designated for anomaly events; and

based on the anomaly event and a data representation of the anomaly detection rule, generate a notification that is to be issued to the user.

16. The non-transitory computer-readable medium of claim 12 , wherein the non-transitory computer-readable medium is further provisioned with program instructions that, when executed by at least one processor, cause the computing platform to:

detect a request to update a schema being maintained by the computing platform for the at least one streaming event queue;

determine that the request to update the schema involves removal of a data field; and

based on determining that the request to update the schema involves removal of the data field, decline to update the schema.

17. The non-transitory computer-readable medium of claim 12 , wherein the non-transitory computer-readable medium is further provisioned with program instructions that, when executed by at least one processor, cause the computing platform to:

before retrieving the anomaly detection rule:

cause a client device associated with a user to present an interface for creating an anomaly detection rule;

receive, from the client device, data defining the anomaly detection rule, wherein the received data is based on user input provided via the interface; and

store a data representation of the anomaly detection rule.

18. The non-transitory computer-readable medium of claim 12 , wherein the one or more source datasets are monitored and the changes to the one or more source datasets are detected utilizing a change data capture (CDC) engine.

19. The non-transitory computer-readable medium of claim 12 , wherein the streaming query statement comprises a KSQL or ksqlDB statement.

20. A method carried out by a computing platform, the method comprising:

monitoring one or more source datasets for changes, wherein the one or more source datasets comprise a plurality of data records;

while monitoring the one or more source datasets for changes, detecting changes to the one or more source datasets;

based on the detected changes, generating streaming events that each represents a respective change related to a respective data record within the one or more source datasets and each contains data that corresponds to underlying data contained within the respective data record;

populating the generated streaming events into one or more streaming event queues;

retrieving an anomaly detection rule that comprises at least one anomaly condition;

converting the anomaly detection rule to a streaming query statement;

applying, in a near real-time manner, the streaming query statement to at least one streaming event queue of the one or more streaming event queues;

while applying the streaming query statement to the at least one streaming event queue, making at least one determination that the at least one anomaly condition is satisfied; and

based on the at least one determination, causing at least one anomaly notification to be issued to a user.

Assignments (3)
MERGER Recorded Jul 2, 2025
From: DISCOVER FINANCIAL SERVICES
To: CAPITAL ONE FINANCIAL CORPORATION
Reel/Frame 071784/0903 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2024
From: STURM, BRENDAN
To: DISCOVER FINANCIAL SERVICES
Reel/Frame 067701/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2024
From: PACHAMUTHU, DHINESHKUMAR; MOHAMMAD, ABDUL NAFEEZ; MATHEW, VIVEK; BONEFAS, SARA
To: DISCOVER FINANCIAL SERVICES
Reel/Frame 066552/0271 →
Continuity (2)
Continuation 17581546 · Jan 21, 2022
Related Publication 20240168839A1 · May 23, 2024
References Cited (24)
US 9223673B1 · Shamis et al. · 2015 [cited by applicant]
US 11620541B1 · Ghosh et al. · 2023 [cited by applicant]
US 11757959B2 · Trocki · 2023 [cited by examiner]
US 11886278B2 · Pachamuthu · 2024 [cited by examiner]
US 20080243524A1 · Agrawal et al. · 2008 [cited by applicant]
US 20110184878A1 · Hoefelmeyer · 2011 [cited by applicant]
US 20110271146A1 · Mork et al. · 2011 [cited by applicant]
US 20150172293A1 · Bittner et al. · 2015 [cited by applicant]
US 20160098402A1 · Filippi et al. · 2016 [cited by applicant]
US 20160103838A1 · Sainani et al. · 2016 [cited by applicant]
US 20170192872A1 · Awad et al. · 2017 [cited by applicant]
US 20200285514A1 · Ghare et al. · 2020 [cited by applicant]
US 20210209159A1 · Mahanta et al. · 2021 [cited by applicant]
KR 1020060017767A · 2006 [cited by applicant]
Kafka Streams and ksqlDB, Apr. 9, 2020, docs.ksqldb.io/en/0.7.1-ksqldb/concepts/ksqldb-and-kafka-streams/ (Year: 2020). [cited by examiner]
Ksqldb, Apr. 21, 2020, docs.ksqldb.io/en/0.8.1-ksqldb/ (Year: 2020). [cited by examiner]
International Search Report and Written Opinion issued in International Application No. PCT/US2022/053119, mailed on Apr. 28, 2023, 9 pages. [cited by applicant]
Narkhede, Neha. KSQL—Streaming SQL for Apache Kafka. Aug. 28, 2017, pp. 7 [online], [retrieved on Nov. 5, 2021]. Retrieved from the Internet <URL: https://www.confluent.io/blog/ksql-streaming-sql-for-apache-kafka/>. [cited by applicant]
Karuthakantakath, Ajmal. Anomly Detection with Kafka Streams. Big Data Zone, Tutorial, Oct. 17, 2017, pp. 5 [online], [retrieved on Nov. 8, 2021]. Retrieved from the Internet <URL: https://dzone.com/articles/highly-scal… [cited by applicant]
Event-Driven Microservice. ksqlDB Documentation. Mar. 3, 2021, pp. 16 [online], [retrieved on Nov. 8, 2021]. Retrieved from the Internet <URL:https://docs.ksqldb.io/en/latest/tutorials/event-driven-microservice/>. [cited by applicant]
Anomaly Detection Using ksqlDB. Kafka Tutorials. pp. 9 [online], [retrieved on Nov. 8, 2021]. Retrieved from the Internet <URL:https://kafka-tutorials.confluent.io/anomaly-detection/ksql.html#group-events-by-time-interv… [cited by applicant]
Chakraboty, Swarnava. Failure detection and alert from real-time data flow using Kafka and KSQL. Fastforward.blog, Mar. 3, 2020, pp. 13 [online], [retrieved on Nov. 8, 2021]. Retrieved from the Internet <URL: fastnforwa… [cited by applicant]
Seymour, Mitch. Mastering Kafka Streams and ksqlDB. Building Real-Time Data Systems by Example, Extracted Pages. O'Reilly, Feb. 4, 2021, pp. 11 [online], [retrieved on Nov. 8, 2021]. Retrieved from the Internet <URL: ht… [cited by applicant]
“KSQL Use Cases. Level Up your KSQL by Confluent”, YouTube, https://www.youtube.com/watch?v=euz0isNG1SQ&t=6s, May 1, 2018, 1 page. [cited by applicant]