IP Library › Granted Patent US 12,400,235
Granted Patent B2
US 12,400,235 · App. 18/737,177 · Granted Aug 26, 2025

Transaction exchange platform with a messenger microservice to update transactions

Inventors: Earle Michael Lee (Midlothian, VA); Brian T. Burnett (Mechanicsville, VA); David Smit (Richmond, VA)
Assignee: Capital One Services, LLC
G06Q20/425G06F11/0745G06F11/0757G06F11/1405G06F11/1474G06F16/2379G06Q20/085G06Q20/401
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,400,235
App. No.
18/737,177
Granted
Aug 26, 2025
Kind
B2
Abstract

Aspects described herein may relate to a transaction exchange platform using a streaming data platform (SDP) and microservices to process transactions according to review and approval workflows. The transaction exchange platform may receive transactions from origination sources, which may be added to the SDP as transaction objects. Microservices on the transaction exchange platform may interact with the transaction objects based on configured workflows associated with the transactions. Processing on the transaction exchange platform may facilitate clearing and settlement of transactions. Some aspects may provide for pausing the processing of transactions during a workflow. Other aspects may provide for a messaging microservice that permits communications between the transaction exchange platform and external third-parties.

Claims (81)

1. A computer-implemented method comprising:

determining, by a first microservice associated with a streaming data platform and during processing of a transaction object, that the processing of the transaction object should be paused;

adding, by a pause microservice associated with the streaming data platform, the transaction object to the streaming data platform with an acknowledgement indicating that processing of the transaction object has been paused, wherein the transaction object is not processed in accordance with a workflow based on the indication that processing of the transaction object has been paused while processing of a plurality of transaction objects, by a plurality of microservices, continues in accordance with a workflow of the streaming data platform;

retrieving, by a messenger microservice, a second plurality of transaction objects, wherein the second plurality of transaction objects comprises the paused transaction object;

determining, by the messenger microservice, that the paused transaction object requires additional information from a party external to the streaming data platform;

transmitting, by the messenger microservice and based on a determination that the transaction object requires additional information, a request for additional processing of the transaction object to the party external to the streaming data platform;

receiving, by the pause microservice, a response to the request for additional processing of the transaction object, wherein the response comprises the additional information from the party external to the streaming data platform;

updating, by the pause microservice, the paused transaction object based on the response;

updating, by the pause microservice, a current workflow stage of the transaction object to indicate that the transaction object is to be processed by a second microservice;

processing, by the second microservice and based on a determination that the current workflow stage matches a second workflow stage associated with the second microservice, the transaction object using the additional information received in the response;

updating, by the second microservice, the current workflow stage of the transaction object to indicate that the second microservice has completed processing of the transaction object;

determining that the current workflow stage of the transaction object indicates that the transaction object has completed processing corresponding to the workflow; and

removing the transaction object from the streaming data platform and outputting the transaction object and an indication that the transaction object has completed the processing corresponding to the workflow to a downstream system.

2. The computer-implemented method of claim 1 , wherein the request to pause the processing of the transaction object comprises at least one of:

an indication that the transaction object comprises insufficient information;

an indication that the transaction object comprises improper information; or

an indication that the transaction object generates a fraud alert.

3. The computer-implemented method of claim 1 , wherein the transmitting the request for additional processing comprises at least one of:

sending an electronic communication to the external party; or

writing the transaction object to a public streaming data platform.

4. The computer-implemented method of claim 1 , further comprising:

transforming, by the messenger microservice and prior to the transmitting the request for additional processing, the transaction object, wherein transforming comprises reformatting the transaction object from a first format associated with the streaming data platform to a second format associated with the external party; and

transmitting, by the messenger microservice, the transformed transaction object with the request for additional processing.

5. The computer-implemented method of claim 4 , further comprising:

transforming the response, prior to updating the transaction object, by reformatting the response from the second format to the first format.

6. The computer-implemented method of claim 1 , wherein the updating the paused transaction object based on the response further comprises:

writing additional information as addenda data to the transaction object.

7. The computer-implemented method of claim 1 , wherein the response is received via an application programming interface associated with the pause microservice.

8. A transaction exchange platform comprising:

at least one processor; and

memory storing instructions that, when executed by the at least one processor, cause the transaction exchange platform to:

determine, by a first microservice associated with a streaming data platform and during processing of a transaction object, that the processing of the transaction object should be paused;

add, by a pause microservice associated with the streaming data platform, the transaction object to the streaming data platform with an acknowledgement indicating that processing of the transaction object has been paused, wherein the transaction object is not processed in accordance with a workflow based on the indication that processing of the transaction object has been paused while processing of a plurality of transaction objects, by a plurality of microservices, continues in accordance with a workflow of the streaming data platform;

retrieve, by a messenger microservice, a second plurality of transaction objects, wherein the second plurality of transaction objects comprises the paused transaction object;

determine, by the messenger microservice, that the paused transaction object requires additional information from a party external to the streaming data platform;

transmit, by the messenger microservice and based on a determination that the transaction object requires additional information, a request for additional processing of the transaction object to the party external to the streaming data platform;

receive, by the pause microservice, a response to the request for additional processing of the transaction object, wherein the response comprises the additional information from the party external to the streaming data platform;

update, by the pause microservice, the paused transaction object based on the response;

update, by the pause microservice, a current workflow stage of the transaction object to indicate that the transaction object is to be processed by a second microservice;

process, by the second microservice and based on a determination that the current workflow stage matches a second workflow stage associated with the second microservice, the transaction object using the additional information received in the response;

update, by the second microservice, the current workflow stage of the transaction object to indicate that the second microservice has completed processing of the transaction object;

determine that the current workflow stage of the transaction object indicates that the transaction object has completed processing corresponding to the workflow; and

remove the transaction object from the streaming data platform and output the transaction object and an indication that the transaction object has completed the processing corresponding to the workflow to a downstream system.

9. The transaction exchange platform of claim 8 , wherein the request to pause the processing of the transaction object comprises at least one of:

an indication that the transaction object comprises insufficient information;

an indication that the transaction object comprises improper information; or

an indication that the transaction object generates a fraud alert.

10. The transaction exchange platform of claim 8 , wherein the instructions, when executed by the at least one processor, cause the transaction exchange platform to transmit the request for additional processing by at least one of:

sending an electronic communication to the external party; or

writing the transaction object to a public streaming data platform.

11. The transaction exchange platform of claim 8 , wherein the instructions, when executed by the at least one processor, cause the transaction exchange platform to:

transform, by the messenger microservice and prior to the transmitting the request for additional processing, the transaction object, wherein transforming comprises reformatting the transaction object from a first format associated with the streaming data platform to a second format associated with the external party; and

transmit, by the messenger microservice, the transformed transaction object with the request for additional processing.

12. The transaction exchange platform of claim 11 , wherein the instructions, when executed by the at least one processor, cause the transaction exchange platform to transform the response, prior to updating the transaction object, by reformatting the response from the second format to the first format.

13. The transaction exchange platform of claim 8 , wherein the instructions, when executed by the at least one processor, cause the transaction exchange platform to update the paused transaction object by writing additional information as addenda data to the transaction object.

14. The transaction exchange platform of claim 8 , wherein the instructions, when executed by the at least one processor, cause the transaction exchange platform to receive the response via an application programming interface associated with the pause microservice.

15. One or more non-transitory computer readable media comprising instructions that, when executed, cause a transaction exchange platform to:

determine, by a first microservice associated with a streaming data platform and during processing of a transaction object, that the processing of the transaction object should be paused;

add, by a pause microservice associated with the streaming data platform, the transaction object to the streaming data platform with an acknowledgement indicating that processing of the transaction object has been paused, wherein the transaction object is not processed in accordance with a workflow based on the indication that processing of the transaction object has been paused while processing of a plurality of transaction objects, by a plurality of microservices, continues in accordance with a workflow of the streaming data platform;

retrieve, by a messenger microservice, a second plurality of transaction objects, wherein the second plurality of transaction objects comprises the paused transaction object;

determine, by the messenger microservice, that the paused transaction object requires additional information from a party external to the streaming data platform;

transmit, by the messenger microservice and based on a determination that the transaction object requires additional information, a request for additional processing of the transaction object to the party external to the streaming data platform;

receive, by the pause microservice, a response to the request for additional processing of the transaction object, wherein the response comprises the additional information from the party external to the streaming data platform;

update, by the pause microservice, the paused transaction object based on the response;

update, by the pause microservice, a current workflow stage of the transaction object to indicate that the transaction object is to be processed by a second microservice;

process, by the second microservice and based on a determination that the current workflow stage matches a second workflow stage associated with the second microservice, the transaction object using the additional information received in the response;

update, by the second microservice, the current workflow stage of the transaction object to indicate that the second microservice has completed processing of the transaction object;

determine that the current workflow stage of the transaction object indicates that the transaction object has completed processing corresponding to the workflow; and

remove the transaction object from the streaming data platform and output the transaction object and an indication that the transaction object has completed the processing corresponding to the workflow to a downstream system.

16. The one or more non-transitory computer readable media of claim 15 , wherein the request to pause the processing of the transaction object comprises at least one of:

an indication that the transaction object comprises insufficient information;

an indication that the transaction object comprises improper information; or

an indication that the transaction object generates a fraud alert.

17. The one or more non-transitory computer readable media of claim 15 , wherein the instructions, when executed, cause the transaction exchange platform to transmit the request for additional processing by at least one of:

sending an electronic communication to the external party; or writing the transaction object to a public streaming data platform.

18. The one or more non-transitory computer readable media of claim 15 , wherein the instructions, when executed, cause the transaction exchange platform to:

transform, by the messenger microservice and prior to the transmitting the request for additional processing, the transaction object, wherein transforming comprises reformatting the transaction object from a first format associated with the streaming data platform to a second format associated with the external party; and

transmit, by the messenger microservice, the transformed transaction object with the request for additional processing.

19. The one or more non-transitory computer readable media of claim 18 , wherein the instructions, when executed, cause the transaction exchange platform to transform the response, prior to updating the transaction object, by reformatting the response from the second format to the first format.

20. The one or more non-transitory computer readable media of claim 15 , wherein the instructions, when executed, cause the transaction exchange platform to update the paused transaction object by writing additional information as addenda data to the transaction object.

21. The one or more non-transitory computer readable media of claim 15 , wherein the instructions, when executed, cause the transaction exchange platform to receive the response via an application programming interface associated with the pause microservice.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2024
From: LEE, EARLE MICHAEL; BURNETT, BRIAN T.; SMIT, DAVID
To: CAPITAL ONE SERVICES, LLC
Reel/Frame 067656/0940 →
Continuity (4)
Continuation 18077655 · Dec 8, 2022
Continuation In Part 17389045 · Jul 29, 2021
Continuation 16723545 · Dec 20, 2019
Related Publication 20240330940A1 · Oct 3, 2024
References Cited (66)
US 5596754A · Lomet · 1997 [cited by applicant]
US 7110969B1 · Bennett et al. · 2006 [cited by applicant]
US 9754318B1 · Spies et al. · 2017 [cited by applicant]
US 10474977B2 · Stevens et al. · 2019 [cited by applicant]
US 10839022B1 · Klein et al. · 2020 [cited by applicant]
US 11057353B2 · Smith et al. · 2021 [cited by applicant]
US 20050015425A1 · Kumar et al. · 2005 [cited by applicant]
US 20060149611A1 · Diep et al. · 2006 [cited by applicant]
US 20070100961A1 · Moore · 2007 [cited by applicant]
US 20070185872A1 · Ho et al. · 2007 [cited by applicant]
US 20070276714A1 · Beringer · 2007 [cited by applicant]
US 20070288459A1 · Kashiyama et al. · 2007 [cited by applicant]
US 20070288635A1 · Gu et al. · 2007 [cited by applicant]
US 20080010198A1 · Eliscu · 2008 [cited by applicant]
US 20090313311A1 · Hoffmann et al. · 2009 [cited by applicant]
US 20100138438A1 · Torikai et al. · 2010 [cited by applicant]
US 20100232286A1 · Takahashi et al. · 2010 [cited by applicant]
US 20110047054A1 · Ginter et al. · 2011 [cited by applicant]
US 20120030094A1 · Khalil · 2012 [cited by applicant]
US 20120310881A1 · Shadmon · 2012 [cited by applicant]
US 20130152021A1 · Hatfield et al. · 2013 [cited by applicant]
US 20130152041A1 · Hatfield et al. · 2013 [cited by applicant]
US 20140372394A1 · Frankel et al. · 2014 [cited by applicant]
US 20150088756A1 · Makhotin et al. · 2015 [cited by applicant]
US 20150379514A1 · Poole · 2015 [cited by applicant]
US 20160004751A1 · Lafuente Alvarez et al. · 2016 [cited by applicant]
US 20160035014A1 · Smith · 2016 [cited by applicant]
US 20160092488A1 · Sun et al. · 2016 [cited by applicant]
US 20160110687A1 · Kamat et al. · 2016 [cited by applicant]
US 20160124742A1 · Rangasamy et al. · 2016 [cited by applicant]
US 20160253645A1 · Ciabarra et al. · 2016 [cited by applicant]
US 20160307190A1 · Zarakas et al. · 2016 [cited by applicant]
US 20170041189A1 · Aswathanarayana et al. · 2017 [cited by applicant]
US 20170060621A1 · Whipple et al. · 2017 [cited by applicant]
US 20180077038A1 · Leff · 2018 [cited by examiner]
US 20180101848A1 · Castagna et al. · 2018 [cited by applicant]
US 20180103042A1 · Castagna et al. · 2018 [cited by applicant]
US 20180307514A1 · Koutyrine · 2018 [cited by examiner]
US 20180332138A1 · Liu et al. · 2018 [cited by applicant]
US 20190043207A1 · Carranza et al. · 2019 [cited by applicant]
US 20190199626A1 · Thubert et al. · 2019 [cited by applicant]
US 20190333069A1 · Noble et al. · 2019 [cited by applicant]
US 20200004604A1 · Lavoie et al. · 2020 [cited by applicant]
US 20200241944A1 · Derdak et al. · 2020 [cited by applicant]
US 20200257676A1 · Zhang et al. · 2020 [cited by applicant]
US 20200310830A1 · Morgan et al. · 2020 [cited by applicant]
US 20210019194A1 · Bahl et al. · 2021 [cited by applicant]
US 20210192515A1 · Lee et al. · 2021 [cited by applicant]
US 20210357947A1 · Lee et al. · 2021 [cited by applicant]
CN 108052996A · 2018 [cited by applicant]
CN 111666291A · 2020 [cited by applicant]
Rimma Nehme, Efficient Query Processing for Rich and Diverse Real-Time Data, Purdue University, Jun. 10, 2009 (Year: 2009). [cited by applicant]
Nov. 25, 2020—Final Rejection—U.S. Appl. No. 16/723,545. [cited by applicant]
Oct. 16, 2020—Final Rejection—U.S. Appl. No. 16/723,509. [cited by applicant]
Feb. 1, 2021—Notice of Allowance—U.S. Appl. No. 16/723,439. [cited by applicant]
Rathnayake, A Realtime Monitoring Platform forWorkflow Subroutines, 2018 IEEE (Year: 2018). [cited by applicant]
Feb. 12, 2021—Notice of Allowance—U.S. Appl. No. 16/723,509. [cited by applicant]
Apr. 1, 2021—International Search Report and Written Opinion—PCT/US2020/065979. [cited by applicant]
Goel Divya et al.: “Reactive Microservices in Commodity Resources”, 2019 IEEE International Conference on Big Data (Big Data), IEEE, Dec. 9, 2019 (Dec. 9, 2019), pp. 3658-3665, XP033721750, DOI: 10.1109/BIGDATA47090.201… [cited by applicant]
Limon Xavier et al: “SagaMAS: A Software Framework for Distributed Transactions in the Microservice Architecture”, 2018 6th International Conference in Software Engineering Research and Innovation (CONISOFT), IEEE, Oct.… [cited by applicant]
Jun. 5, 2023—Extended European Search Report—EP 20903637.5. [cited by applicant]
Jun. 5, 2023—Extended European Search Report—EP 23163594.7. [cited by applicant]
Mar. 21, 2024—(WO) International Search Report and Written Opinion—App No. PCT/US2023/085884. [cited by applicant]
Anonymous: “Documentation : Redis”, Jan. 3, 2023, XP093137739, https://redis.io/docs, pp. 1-65. [cited by applicant]
Apr. 3, 2024—(WO) International Search Report and Written Opinion—App No. PCT/US2023/082686. [cited by applicant]
May 13, 2024—(WO) International Search Report and Written Opinion—App No. PCT/US2023/085366. [cited by applicant]