Brokerage Transaction Server and Method Using Encapsulated Messages
Brokerage transactions servers and related methods are provided having low latency. A transaction fuser operates to split incoming order flow into multiple independent streams of data, all of which can be processed in parallel without dependencies between them, allowing back-end jobs to process this data in parallel and increase throughput. Multiple transactions that operate on the same data may be “collapsed” into a single transaction, which reflects the final end state of the order.
1 . A method of processing a series of order transactions in an order stream before clearing processing, the method comprising:
buffering the order stream in a buffer;
separating the order stream into a plurality of back-end processing streams, in such a manner that transactions in the buffer pertaining to the same order are fed to the same one of the back-end processing streams; and
in each of the back-end processing streams, collapsing transactions pertaining to the same order according to established criteria, to produce a compressed output.
2 . A method according to claim 1 , further comprising:
wherein buffering the order stream in a buffer includes storing, in a held set, a set of order IDs to be currently processed in the back-end processing streams; storing, in a held map, a map of order IDs that are currently in the held set to lists of transactions in queue for back-end processing; and storing, in an order map, a map of order IDs to lists of transactions in queue for back-end processing until there is an associated order ID currently in the held set.
3 . A clearing interface server for processing a series of order transactions in an order stream before clearing processing, the server comprising:
a transaction inserter;
a first plurality of order data structures established in memory as a buffer coupled to the transaction inserter for storing data to be processed; and
a second plurality of back-end processors coupled to the order data structures, in such a manner that transactions in the buffer pertaining to the same order are fed to the same one of the back-end processors, each back-end processor collapsing transactions pertaining to the same order according to established criteria, to produce a compressed output.
4 . A clearing interface server according to claim 3 , further comprising:
wherein the order data structures include a held set, in which are stored a set of order IDs to be currently processed in the back-end processing streams; a held map, in which is stored a map of order IDs that are currently in the held set to lists of transactions in queue for back-end processing;
and an order map in which is stored a map of order IDs to lists of transactions in queue for back-end processing until there is an associated order ID currently in the held set.
5 . A non-transitory digital storage medium encoded with instructions that, when loaded into a digital computer, cause the computer to implement a method of processing a series of order transactions in an order stream before clearing processing, wherein the method comprises:
buffering the order stream in a buffer;
separating the order stream into a plurality of back-end processing streams, in such a manner that transactions in the buffer pertaining to the same order are fed to the same one of the back-end processing streams; and
in each of the back-end processing streams, collapsing transactions pertaining to the same order according to established criteria, to produce a compressed output.