IP Library Granted Patent US 11,977,557
Granted Patent B2
US 11,977,557 · App. 16/696,900 · Granted May 7, 2024

Extensible data pipeline manager

Inventors: Joseph Laval Tremblay (College Station, TX); Jack Eugene Edwards, Jr. (Cypress, TX); Venkata Siva Krishna Gudivada (College Station, TX); Brett Jamison Wolfe (College Station, TX)
Assignee: NCR Voyix Corporation
G06F16/254G06F11/0772G06F16/258
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 11,977,557
App. No.
16/696,900
Granted
May 7, 2024
Kind
B2
Abstract

Disclosed is an extensible data pipeline. The extensible data pipeline can include detecting, by a backend system, incoming data at a spigot. The backend system can initiate a sequence of transforms upon detecting the incoming data. Each of the transforms can be operative to perform an operation on the data and output both transformed data and a status identifier. The status identifier can indicate a status of a transform operation for a respective one of the transforms. The transformed data from a final transform can be stored along with a final identifier indicating a status of the final transform.

Claims (46)

1. A method for managing an extensible data pipeline, the method comprising:

detecting, by a processor of a server that includes a backend system, incoming data by a spigot, the incoming data comprising a first data having a first format and a second data having a second format, the first format being different than the second format, wherein the spigot detects the incoming data at a network inlet accessible to the backend system, wherein the spigot is a given function that continuously processes to detect the incoming data;

initiating, by the processor, a sequence of transforms, each of the transforms performing an operation on the data and output both transformed data and a status identifier, each transform passes the corresponding transformed data and corresponding status identifier produced as output to a next transform via cache, the status identifier indicating a status of a transform operation for a respective one of the transforms, the transformed data having a common format, wherein each transform of the sequence is a function that processes the data and processes any previous output produced by a previous executed function that preceded the corresponding function in the sequence;

storing, by the processor, the transformed data from a final transform along with a final identifier indicating a status of the final transform;

causing, by the processor, the transformed data to be displayed on one or more displays; and

iterating, by the processor, to the detecting for additional incoming data by the spigot to operate the extensible data pipeline as a customized pipeline for the incoming data and the additional incoming data.

2. The method of claim 1 , wherein initiating the sequence of transforms includes initiating a transform using the transformed data and the status identifier from a prior transform.

3. The method of claim 1 , wherein initiating the sequence of transforms includes initiating a custom plugin, the custom plugin defining an external function.

4. The method of claim 1 , further comprising deleting the incoming data upon storing the transformed data.

5. The method of claim 1 , further comprising terminating the sequence of transforms when the status identifier of one of the sequence of transforms indicates an error, the final transform being a last transform to successfully complete.

6. The method of claim 1 , further comprising:

concatenating the transformed data with existing product data to create display data;

transmitting the display data to a plurality of remote displays; and

displaying the display data on each of the plurality of remote displays.

7. The method of claim 1 , wherein the status identifier includes an indication that the transform failed, succeeded, or stopped.

8. A backend system for managing an extensible data pipeline, the backend system comprising:

a processor; and

a memory storing instructions that, when executed by the processor, cause the processor to perform operations comprising:

detecting incoming data by a spigot, the incoming data comprising a first data having a first format and a second data having a second format, the first format being different than the second format, wherein the spigot detects the incoming data at a network inlet accessible to the backend system, wherein the spigot is a given function that continuously processes to detect the incoming data,

initiating a sequence of transforms, each of the transforms performing an operation on the data and output both transformed data and a status identifier, each transform passes the corresponding transformed data and corresponding status identifier produced as output to a next transform via cache, the status identifier indicating a status of a transform operation for a respective one of the transforms, the transformed data having a common format, wherein each transform of the sequence is a function that processes the data and processes any previous output produced by a previous executed function that preceded the corresponding function in the sequence,

storing the transformed data from a final transform along with a final identifier indicating a status of the final transform;

causing the transformed data to be displayed on one or more displays; and

iterating to the detecting for additional incoming data by the spigot to operate the extensible data pipeline as a customized pipeline for the incoming data and the additional incoming data.

9. The backend system of claim 8 , wherein initiating the sequence of transforms includes initiating a transform using the transformed data and the status identifier from a prior transform.

10. The backend system of claim 8 , wherein the operations further comprise initiating a custom plugin, the custom plugin defining an external function.

11. The backend system of claim 8 , wherein the operations further comprise terminating the sequence of transforms when the status identifier of one of the sequence of transforms indicates an error, the final transform being a last transform to successfully complete.

12. The backend system of claim 8 , wherein the status identifier includes an indication that the transform failed, succeeded, or stopped.

13. The backend system of claim 8 , wherein the operations further comprise:

concatenating the transformed data with existing product data to create display data;

transmitting the display data to a plurality of remote displays; and

displaying the display data on each of the plurality of remote displays.

14. The system of claim 13 , wherein initiating the sequence of transforms includes initiating a transform using the transformed data and the status identifier from a prior transform.

15. The system of claim 13 , wherein the operations further comprise deleting the incoming data upon storing the transformed data.

16. The system of claim 13 , wherein the operations further comprise terminating the sequence of transforms when the status identifier of one of the sequence of transforms indicates an error, the final transform being a last transform to successfully complete.

17. A system for displaying point of sale (POS) data, the system comprising:

a plurality of displays; and

a server that includes a backend system, the backend system comprising at least one computing device, and the computing device comprising a processor for managing an extensible data pipeline, the processor operable to perform operations comprising:

detecting incoming data by a spigot, the incoming data comprising a first data having a first format and a second data having a second format, the first format being different than the second format, wherein the spigot detects the incoming data at a network inlet accessible to the backend system, wherein the spigot is a given function that continuously processes to detect the incoming data,

initiating a sequence of transforms, each of the transforms performing an operation on the data and output both transformed data and a status identifier, each transform passes the corresponding transformed data and corresponding status identifier produced as output to a next transform via cache, the status identifier indicating a status of a transform operation for a respective one of the transforms, the transformed data having a common format, wherein each transform of the sequence is a function that processes the data and processes any previous output produced by a previous executed function that preceded the corresponding function in the sequence,

storing the transformed data from a final transform along with a final identifier indicating a status of the final transform,

concatenating the transformed data with existing product data to create display data;

transmitting the display data to each of the plurality of displays, each of the plurality of displays located remotely from the backend system; and

iterating to the detecting for additional incoming data by the spigot to operate the extensible data pipeline as a customized pipeline for the incoming data and the additional incoming data;

wherein each of the displays comprise a display processor and each display processor operable to perform second operations comprising:

receiving the transformed data, and

displaying the transformed data on multiple remote displays.

Assignments (3)
CHANGE OF NAME Recorded Nov 9, 2023
From: NCR CORPORATION
To: NCR VOYIX CORPORATION
Reel/Frame 065532/0893 →
SECURITY INTEREST Recorded Oct 25, 2023
From: NCR VOYIX CORPORATION
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 065346/0168 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2019
From: TREMBLAY, JOSEPH LAVAL; EDWARDS, JACK EUGENE, JR.; GUDIVADA, VENKATA SIVA KRISHNA; WOLFE, BRETT JAMISON
To: NCR CORPORATION
Reel/Frame 051124/0077 →