Apparatus and method for low-latency message request/response processing
Assigneesalesforce.com, inc.
InventorWojciech A. Koszek
Life of this patent
Estimating the term…
Abstract
An apparatus and method for low-latency real-time request processing. For example, one implementation comprises a front end and a plurality of micro-services each utilizing a different type of hardware and/or software tailored to perform a specialized type of processing. In one implementation, the front end receives a request message (e.g., an HTTP request) containing program code/data in its header and forwards the request to certain micro-services in accordance with the type of processing required and/or other variables such as load on the micro-services. A central storage may be shared by the front end and the micro-services to exchange data and/or the data may be stored in the intermediate messages passed between the front end and micro-services.
Claims20
A method comprising:
- receiving an application-layer request message from a client electronic device, the application-layer request message including program data;
- transmitting an initial message to a first micro-service of a series of micro-services associated with the program data, wherein the series of micro-services are selected from a plurality of micro-services, each micro-service in the plurality of micro-services utilizes different hardware or software for processing, and the first micro-service provides a first type of processing;
- processing the program data at the first micro-service using the first type of processing to generate an intermediate result;
- providing the intermediate result to a second micro-service in the series of micro-services based on a determination of a second type of processing required by the program data;
- generating responsive to receipt of a final result from a last micro-service in the series of micro-services, an application-layer response message using the final result;
- and
- transmitting the application-layer response message to the client electronic device.
A non-transitory machine-readable medium having instructions stored thereon which, when executed by one or more machines, causes the one or more machines to:
- receive an application-layer request message from a client electronic device, the application-layer request message including program data;
- transmit an initial message to a first micro-service of a series of micro-services associated with the program data, wherein the series of micro-services are selected from a plurality of micro-services, each micro-service in the plurality of micro-services utilizes different hardware or software for processing, and the first micro-service provides a first type of processing;
- process the program data at the first micro-service using the first type of processing to generate an intermediate result;
- provide the intermediate result to a second micro-service in the series of micro-services based on a determination of a second type of processing required by the program data;
- generate responsive to receipt of a final result from a last micro-service in the series of micro-services, an application-layer response message using the final result;
- and
- transmit the application-layer response message to the client electronic device.
An electronic device, comprising:
- a set of memory components;
- and
- a processor coupled to the set of memory components, wherein the set of memory components store instructions which, when executed by the processor, cause the electronic device to:
- receive an application-layer request message from a client electronic device, the application-layer request message including program data;
- transmit an initial message to a first micro-service of a series of micro-services associated with the program data, wherein the series of micro-services are selected from a plurality of micro-services, each micro-service in the plurality of micro-services utilizes different hardware or software for processing, and the first micro-service provides a first type of processing;
- process the program data at the first micro-service using the first type of processing to generate an intermediate result;
- provide the intermediate result to a second micro-service in the series of micro-services based on a determination of a second type of processing required by the program data;
- generate responsive to receipt of a final result from a last micro-service in the series of micro-services, an application-layer response message using the final result;
- and
- transmit the application-layer response message to the client electronic device.
Dependencies are inferred from the claim text.