CA3065692C

Highly scalable event brokering and audit traceability system

Abstract

A system for managing business to business communications may include an event generation unit configured to create a first event based on receiving a purchase order from a client. The system may also include an event detection unit in communication with the event generation unit, the event detection unit configured to detect the first event. The system may also include an action unit in communication with the event generation unit. The action unit may be configured to determine a first action to perform based on the detection of the first event, and perform the first action. The event generation unit may be further configured to create a second event based on the performance of the first action.

CA3065692C, drawing sheet 1
Sheet 1 of 12

Term

11 yearsleft in the term

Expires 11 October 2037.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

17 claims: 1 independent, 16 dependent

  1. 1
    The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:1. A method for improving processing times, comprising: acquiring, by a processor using an event broker, events including at least one of document metadata, organization changes, or notifications;dispatching, by the processor, the events to event listeners by using the event broker in a compute layer;processing, by the processor, an event of the events using an event listener in the compute layer;storing, by the processor, the events in a sharded database cluster by the event broker;assigning, by the processor, shards on each shard node of a sharded database, based on a nature of a partition and a listener hash, to determine a listener hash range;adding, by the processor, new shards to the sharded database, in response to the event broker generating new events based on a configuration parameter that defines an increased listener hash range for allocating the new shards over the increased listener hash range;rebalancing, by the processor, of instances of a component listener based on collections of the components and an allocation of a listener hash range for each instance of the component listener such that one component listener is assigned to process a range of listener hashes, wherein events are dispatched to an instance of the component listener in response to the component listener having a free slot to accept the events;configuring, by the processor, a number of dispatcher threads in the event listener;running, by the processor, multiple event listeners in parallel for the event such that the instance of the event listener receives the event;incorporating, by the processor, an insert and multiple updates into a single insert command to the sharded database;storing, by the processor, the event, a command and an audit together at substantially a same time;and identifying, by the processor, electronic documents with higher priority based on metadata structures, wherein the electronic documents with the higher priority are processed faster.
  2. 6
    The method according to any one of claims 1 to 5, wherein an event bus performs a query dispatch for new computing resources to come online, in response to the event listener being slow.
  3. 7
    The method according to any one of claims 1 to 6, further comprising assigning, by the processor, to the event at least one of a partition or a hash number associated with the component listener.
  4. 8
    The method according to any one of claims 1 to 7, wherein the component listener includes active listeners running on different servers.
  5. 9
    The method according to any one of claims 1 to 8, further comprising processing, by the processor, the event by one instance of the event listener.
  6. 10
    The method according to any one of claims 1 to 9, further comprising grouping, by the processor, the events to provide groupings in different parts of an event bus.
  7. 11
    The method according to any one of claims 1 to 10, further comprising running, by the processor, multiple listeners in parallel such that one instance of the event listener receives the event. Date Reçue/Date Received 2021-03-02
  8. 12
    The method according to any one of claims 1 to 11, wherein the events include at least one of metadata, a state of the electronic document, identifying a format of the electronic document, enriching the electronic document, a signature verification, identifying content within the electronic document, decrypting the electronic document, an organization change or a system notification.
  9. 13
    The method according to any one of claims 1 to 11, wherein the events include a listener hash that is used as a shard key.
  10. 14
    The method according to any one of claims 1 to 13, wherein an event bus allows visibility of at least one of the components that are going to receive the event when the components are ready to process the event, the components that are actively processing the event, the components finished processing the event, real-time processing metrics, events assigned but not dispatched, the component listener with events assigned but backlogged, or metrics into internal queues, threads and processing times.
  11. 15
    The method according to any one of claims 1 to 14, wherein an electronic document audit tracking subsystem is on top of an event bus, wherein the electronic document audit tracking subsystem moves events related to transacting the electronic document into another set of document meta-data collections.
  12. 16
    The method according to any one of claims 1 to 15, wherein the event broker is a client-side API that runs in a cloud environment.
  13. 17
    The method according to any one of claims 1 to 16, further comprising vertically scaling, by the processor, the event listeners and horizontally scaling, by the processor, the event broker.