US 12,436,938 B2
Multi-tenant transactional outbox pattern for event publishing
Arif Iqbal, Fremont, CA (US); and Suhas Madap, Cary, NC (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Oct. 3, 2023, as Appl. No. 18/480,295.
Claims priority of provisional application 63/514,991, filed on Jul. 21, 2023.
Prior Publication US 2025/0028703 A1, Jan. 23, 2025
Int. Cl. G06F 16/23 (2019.01)
CPC G06F 16/2358 (2019.01) [G06F 16/2365 (2019.01)] 18 Claims
OG exemplary drawing
 
1. One or more non-transitory computer readable media comprising instructions which, when executed by one or more hardware processors, causes performance of operations comprising:
initiating, by a particular processing thread for a particular microservice for a particular tenant, execution of an atomic transaction, the atomic transaction comprising (a) executing a database transaction by adding, modifying, or deleting a value in a database instance and (b) logging, to an event outbox associated with the particular tenant, information corresponding to the database transaction;
receiving, by the particular processing thread, confirmation of execution of the atomic transaction;
responsive to receiving the confirmation of the execution of the atomic transaction, publishing, by the particular processing thread in a particular stream partition, a notification corresponding to the execution of the atomic transaction, wherein the notification comprises information that can be used to identify the event outbox storing the information corresponding to the database transaction;
receiving, by an event publisher subscribed to the particular stream partition, the notification corresponding to the execution of the atomic transaction;
responsive to the event publisher receiving the notification, corresponding to the execution of the atomic transaction, via the particular stream partition that is subscribed to by the event publisher:
retrieving, by the event publisher from the event outbox, the information corresponding to the database transaction; and
publishing, by the event publisher, an event based on the information corresponding to the database transaction.