US 12,481,990 B2
Architecture of immutable database for bitemporal analysis
Philip Austin Kedy, Oakton, VA (US); Kenneth J. Schneider, Arlington, VA (US); and Aaron Zhang, McLean, VA (US)
Assigned to Capital One Services, LLC, McLean, VA (US)
Filed by Capital One Services, LLC, McLean, VA (US)
Filed on Nov. 1, 2021, as Appl. No. 17/516,436.
Claims priority of provisional application 63/157,455, filed on Mar. 5, 2021.
Prior Publication US 2022/0284423 A1, Sep. 8, 2022
Int. Cl. G06F 16/215 (2019.01); G06F 16/21 (2019.01); G06F 16/23 (2019.01); G06F 16/901 (2019.01); G06Q 20/08 (2012.01); G06Q 20/38 (2012.01); H04L 41/0806 (2022.01); H04L 41/0816 (2022.01); H04L 41/0853 (2022.01); H04L 41/0866 (2022.01); H04L 67/00 (2022.01); H04L 69/00 (2022.01); H04L 69/08 (2022.01); G06Q 40/00 (2023.01); H04L 9/40 (2022.01)
CPC G06Q 20/389 (2013.01) [G06F 16/215 (2019.01); G06F 16/219 (2019.01); G06F 16/2308 (2019.01); G06F 16/2358 (2019.01); G06F 16/2365 (2019.01); G06F 16/2379 (2019.01); G06F 16/9024 (2019.01); G06Q 20/08 (2013.01); H04L 41/0806 (2013.01); H04L 41/0816 (2013.01); H04L 41/0856 (2013.01); H04L 41/0866 (2013.01); H04L 67/34 (2013.01); H04L 69/02 (2013.01); H04L 69/08 (2013.01); G06Q 40/00 (2013.01); H04L 63/20 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A data processing system comprising:
a data stream manager configured to:
generate a data stream associated with a data stream identifier, wherein the data stream identifier identifies a user account managed by the data processing system;
receive, in the data stream, a plurality of transactions including a new transaction and a retroactive transaction, wherein the new transaction and the retroactive transaction are associated with the user account;
a processing engine configured to receive, from the data stream manager, the plurality of transactions including the new transaction and the retroactive transaction, and wherein the processing engine is further configured to:
identify, in a bitemporal ledger in communication with the processing engine, a sequence of transactions associated with the new transaction and the retroactive transaction and an alternate sequence of transactions, wherein the sequence of transactions is implemented as a transaction timeline associated with the user account, and wherein the alternate sequence of transactions is implemented as an alternate timeline associated with the user account;
append, in the bitemporal ledger, the new transaction to the sequence of transactions according to temporal metadata associated with the new transaction, wherein the temporal metadata includes a first time indicating when the new transaction is created and a second time indicating when the new transaction is to take effect, wherein the bitemporal ledger is configured to prevent any transactions in the sequence of transactions from being overwritten during the appending, wherein the transaction timeline comprising the sequence of transactions and the new transaction reflects a current state of the user account, and wherein the sequence of transactions is time-ordered based at least in part on the second time of the temporal metadata; and
incorporate, in the bitemporal ledger, the retroactive transaction to the alternate sequence of transactions by replacing one transaction in the sequence of transactions in the alternate timeline with the retroactive transaction; and
the bitemporal ledger configured to store the transaction timeline and the alternate timeline, wherein the bitemporal ledger is configured to:
maintain the alternate timeline separate from the transaction timeline, wherein the alternate sequence of transactions reflects an alternate state of the user account based on the retroactive transaction, and wherein the alternate sequence of transactions is time-ordered based at least in part on temporal metadata associated with the retroactive transaction;
determine whether the alternate state of the user account includes an error, wherein the evaluation comprises a comparison between the current state and the alternate state; and
merge, in the transaction timeline, the current state of the user account with the alternate state of the user account based on the determining.