IP Library Granted Patent US 12,411,706
Granted Patent B2
US 12,411,706 · App. 17/884,857 · Granted Sep 9, 2025

Reconciliation systems and methods for unbounded streams

Inventors: Duncan Stewart (London, GB); Alok Dwivedi (Reading, GB)
Assignee: Capital One Financial Corporation
G06F9/45558H04L63/12
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,411,706
App. No.
17/884,857
Granted
Sep 9, 2025
Kind
B2
Abstract

A computing system is configured to (i) detect a window open sentinel indicating one or more reconciliation rules for a window within an unbounded stream of events, (ii) detect a shard open sentinel indicating one or more reconciliation rules for the shard, (iii) receive a set of events produced within the shard, (iv) detect a shard close sentinel indicating producer-generated reconciliation attribute(s) for the shard, (v) execute the reconciliation rules for the shard to thereby generate consumer-generated reconciliation attribute(s) for the shard, (vi) reconcile the consumer-generated reconciliation attributes for the shard against the producer-generated reconciliation attributes for the shard, (vii) detect a window close sentinel indicating producer-generated reconciliation attribute(s) for the window, (viii) execute the reconciliation rules for the window to thereby generate consumer-generated reconciliation attribute(s) for the window, and (ix) reconcile the consumer-generated reconciliation attribute(s) for the window against the producer-generated reconciliation attribute(s) for the window.

Claims (67)

1. A computing system comprising:

a network interface for communicating over at least one data network;

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 are executable by the at least one processor such that the computing system is configured to:

detect a window open sentinel for a window within an unbounded stream of events, wherein the window open sentinel indicates one or more reconciliation rules for the window;

detect a shard open sentinel for a shard within the window, wherein the shard open sentinel indicates one or more reconciliation rules for the shard;

receive a set of events produced within the shard;

detect a shard close sentinel for the shard, wherein the shard close sentinel includes an indication of one or more producer-generated reconciliation attributes for the shard;

execute the one or more reconciliation rules for the shard for a set of events produced within the shard to thereby generate one or more consumer-generated reconciliation attributes for the shard;

based on detecting the shard close sentinel, reconcile the one or more consumer-generated reconciliation attributes for the shard against the one or more producer-generated reconciliation attributes for the shard;

detect a window close sentinel, wherein the window close sentinel includes an indication of one or more producer-generated reconciliation attributes for the window;

execute the one or more reconciliation rules for the window for a set of events produced within the window to thereby generate one or more consumer-generated reconciliation attributes for the window; and

based on detecting the window close sentinel, reconcile the one or more consumer-generated reconciliation attributes for the window against the one or more producer-generated reconciliation attributes for the window.

2. The computing system of claim 1 , wherein the computing system is a consumer computing system, and wherein the program instructions that are executable by the at least one processor such that the consumer computing system is configured to reconcile the one or more consumer-generated reconciliation attributes for the shard against the one or more producer-generated reconciliation attributes for the shard comprise program instructions that are executable by the at least one processor such that the consumer computing system is configured to:

determine that the one or more consumer-generated reconciliation attributes for the shard match the one or more producer-generated reconciliation attributes for the shard; and

transmit, to a producer computing system, an indication that the shard was successfully reconciled.

3. The computing system of claim 1 , wherein the computing system is a consumer computing system, and wherein the program instructions that are executable by the at least one processor such that the consumer computing system is configured to reconcile the one or more consumer-generated reconciliation attributes for the shard against the one or more producer-generated reconciliation attributes for the shard comprise program instructions that are executable by the at least one processor such that the consumer computing system is configured to:

determine that the one or more consumer-generated reconciliation attributes for the shard does not match the one or more producer-generated reconciliation attributes for the shard;

discard the set of events produced within the shard; and

transmit, to a producer computing system, a request to retransmit the set of events produced within the shard.

4. The computing system of claim 1 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to:

create a data object corresponding to the shard; and

after each event in the set of events produced within the shard is received, add the event to the data object for the shard.

5. The computing system of claim 4 , wherein the program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to receive the set of events produced within the shard comprise program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to receive at least one event in the set of events produced within the shard before detecting the shard open sentinel; and

wherein the program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to create the data object corresponding to the shard comprise program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to create the data object corresponding to the shard based on receiving the at least one event in the set of events produced within the shard before detecting the shard open sentinel.

6. The computing system of claim 1 , wherein the program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to execute the one or more reconciliation rules for the shard comprise program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to execute the one or more reconciliation rules for the shard after all events in the set of events produced within the shard are received.

7. The computing system of claim 1 , wherein the program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to execute the one or more reconciliation rules for the shard comprise program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to execute the one or more reconciliation rules for the shard after each event in the set of events produced within the shard is received.

8. The computing system of claim 1 , wherein the window open sentinel includes an indication of a window identifier, and wherein each event in the set of events received within the window includes an indication of the window identifier.

9. The computing system of claim 1 , wherein the one or more reconciliation rules for the window comprise instructions for determining (i) a given number of events produced within the window, (ii) a given number of shards produced within the window, and (iii) a signature for each event produced within the window.

10. The computing system of claim 1 , wherein the one or more reconciliation rules for the window comprise instructions for determining one or more of (i) a summation of a given event attribute across all events produced within the window, (ii) a number of a given type of event produced within the window, or (iii) a signature for each of a given type of event produced within the window.

11. The computing system of claim 1 , wherein the one or more reconciliation rules for the shard comprise instructions for determining (i) a given number of events produced within the shard and (ii) a signature for each event produced within the shard.

12. The computing system of claim 1 , wherein the one or more reconciliation rules for the shard comprise instructions for determining one or more of (i) a summation of a given event attribute across all events produced within the shard, (ii) a number of a given type of event produced within the shard, or (iii) a signature for each of a given type of event produced within the shard.

13. The computing system of claim 1 , wherein the one or more reconciliation rules for the window are different from the one or more reconciliation rules for the shard.

14. 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 system to:

detect a window open sentinel for a window within an unbounded stream of events, wherein the window open sentinel indicates one or more reconciliation rules for the window;

detect a shard open sentinel for a shard within the window, wherein the shard open sentinel indicates one or more reconciliation rules for the shard;

receive a set of events produced within the shard;

detect a shard close sentinel for the shard, wherein the shard close sentinel includes an indication of one or more producer-generated reconciliation attributes for the shard;

execute the one or more reconciliation rules for the shard for a set of events produced within the shard to thereby generate one or more consumer-generated reconciliation attributes for the shard;

based on detecting the shard close sentinel, reconcile the one or more consumer-generated reconciliation attributes for the shard against the one or more producer-generated reconciliation attributes for the shard;

detect a window close sentinel, wherein the window close sentinel includes an indication of one or more producer-generated reconciliation attributes for the window;

execute the one or more reconciliation rules for the window for a set of events produced within the window to thereby generate one or more consumer-generated reconciliation attributes for the window; and

based on detecting the window close sentinel, reconcile the one or more consumer-generated reconciliation attributes for the window against the one or more producer-generated reconciliation attributes for the window.

15. The non-transitory computer-readable medium of claim 14 , wherein the computing system is a consumer computing system, and wherein the program instructions that are executable by the at least one processor such that the consumer computing system is configured to reconcile the one or more consumer-generated reconciliation attributes for the shard against the one or more producer-generated reconciliation attributes for the shard comprise program instructions that are executable by the at least one processor such that the consumer computing system is configured to:

determine that the one or more consumer-generated reconciliation attributes for the shard match the one or more producer-generated reconciliation attributes for the shard; and

transmit, to a producer computing system, an indication that the shard was successfully reconciled.

16. The non-transitory computer-readable medium of claim 14 , wherein the computing system is a consumer computing system, and wherein the program instructions that are executable by the at least one processor such that the consumer computing system is configured to reconcile the one or more consumer-generated reconciliation attributes for the shard against the one or more producer-generated reconciliation attributes for the shard comprise program instructions that are executable by the at least one processor such that the consumer computing system is configured to:

determine that the one or more consumer-generated reconciliation attributes for the shard does not match the one or more producer-generated reconciliation attributes for the shard;

discard the set of events produced within the shard; and

transmit, to a producer computing system, a request to retransmit the set of events produced within the shard.

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

create a data object corresponding to the shard; and

after each event in the set of events produced within the shard is received, add the event to the data object for the shard.

18. The non-transitory computer-readable medium of claim 17 , wherein the program instructions that, when executed by at least one processor, cause the computing system to receive the set of events produced within the shard comprise program instructions that, when executed by at least one processor, cause the computing system to receive at least one event in the set of events produced within the shard before detecting the shard open sentinel; and

wherein the program instructions that, when executed by at least one processor, cause the computing system to create the data object corresponding to the shard comprise program instructions that, when executed by at least one processor, cause the computing system to create the data object corresponding to the shard based on receiving the at least one event in the set of events produced within the shard before detecting the shard open sentinel.

19. The non-transitory computer-readable medium of claim 14 , wherein the one or more reconciliation rules for the window are different from the one or more reconciliation rules for the shard.

20. 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 system to:

detect a window open sentinel for a window within an unbounded stream of events, wherein the window open sentinel indicates one or more reconciliation rules for the window;

detect a shard open sentinel for a shard within the window, wherein the shard open sentinel indicates one or more reconciliation rules for the shard;

receive a set of events produced within the shard;

detect a shard close sentinel for the shard, wherein the shard close sentinel includes an indication of one or more producer-generated reconciliation attributes for the shard;

execute the one or more reconciliation rules for the shard for a set of events produced within the shard to thereby generate one or more consumer-generated reconciliation attributes for the shard;

based on detecting the shard close sentinel, reconcile the one or more consumer-generated reconciliation attributes for the shard against the one or more producer-generated reconciliation attributes for the shard;

detect a window close sentinel, wherein the window close sentinel includes an indication of one or more producer-generated reconciliation attributes for the window;

execute the one or more reconciliation rules for the window for a set of events produced within the window to thereby generate one or more consumer-generated reconciliation attributes for the window; and

based on detecting the window close sentinel, reconcile the one or more consumer-generated reconciliation attributes for the window against the one or more producer-generated reconciliation attributes for the window.

Assignments (2)
MERGER Recorded Jul 2, 2025
From: DISCOVER FINANCIAL SERVICES
To: CAPITAL ONE FINANCIAL CORPORATION
Reel/Frame 071784/0903 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2022
From: STEWART, DUNCAN; DWIVEDI, ALOK
To: DISCOVER FINANCIAL SERVICES
Reel/Frame 060910/0923 →
Continuity (1)
Related Publication 20240053999A1 · Feb 15, 2024
References Cited (14)
US 9619545B2 · Hardy et al. · 2017 [cited by applicant]
US 10320630B2 · Gandham et al. · 2019 [cited by applicant]
US 10423387B2 · Johnson et al. · 2019 [cited by applicant]
US 11087017B1 · Mare et al. · 2021 [cited by applicant]
US 11394778B2 · Vermeulen et al. · 2022 [cited by applicant]
US 20170075990A1 · Leu et al. · 2017 [cited by applicant]
US 20170116210A1 · Park et al. · 2017 [cited by applicant]
US 20180075100A1 · Park · 2018 [cited by examiner]
US 20180203892A1 · Cook et al. · 2018 [cited by applicant]
US 20180324239A1 · Powis · 2018 [cited by examiner]
US 20200177373A1 · Komandur et al. · 2020 [cited by applicant]
US 20210233395A1 · Rocha · 2021 [cited by examiner]
US 20230009909A1 · Porter et al. · 2023 [cited by applicant]
International Search Report and Written Opinion received for PCT Application Serial No. PCT/US2023/029911 mailed on Nov. 28, 2023, 12 pages. [cited by applicant]