IP Library Granted Patent US 12,417,125
Granted Patent B2
US 12,417,125 · App. 17/499,966 · Granted Sep 16, 2025

Microservice architecture with automated non-intrusive event tracing

Inventors: Sudipto Dey (Parsippany, NJ); Jasbir Singh (Morris Plains, NJ); Pulla Reddy P. Yeduru (Austin, TX); Robert A. Seyss (Lafayette, NJ)
Assignee: Express Scripts Strategic Development, Inc.
G06F9/5044G06F9/44505G06F9/546
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 12,417,125
App. No.
17/499,966
Filed
Oct 13, 2021
Granted
Sep 16, 2025
Kind
B2
Art Unit
2196
USPC
718/104
Abstract

A computer system includes memory hardware configured to store structured microservice configuration data having multiple microservice entries each associated with one of multiple microservice applications of a request processing architecture. The system includes processor hardware configured to access structured microservice configuration data to identify the microservice applications of the request processing architecture, subscribing to messages transmitted by the identified microservice applications for event monitoring, and receiving multiple messages transmitted by the identified microservice applications. For each of the multiple received messages, the instructions include analyzing one or more fields of the received message to determine a correlation identifier associated with the received message, identifying one of the multiple request data structures, storing an event message entry in the identified request data structure, and transforming a user interface of a user device to display at least a portion of the multiple event message entries.

Claims (81)

1. A computer system comprising:

memory hardware configured to store structured microservice configuration data, structured event log data, and computer-executable instructions, wherein the structured microservice configuration data includes multiple microservice entries each associated with one of multiple microservice applications of a request processing architecture, and wherein the structured event log data includes multiple request data structures each including multiple event message entries associated with a correlation identifier; and

processor hardware configured to execute the instructions, wherein the instructions include:

accessing the structured microservice configuration data to identify the microservice applications of the request processing architecture, wherein the structured microservice configuration data specifies a flow of messages between the microservice applications in a flow path for a prescription fill request;

converting each step node within the flow path to a hash map;

subscribing to messages transmitted by the identified microservice applications for event monitoring;

receiving multiple messages transmitted by the identified microservice applications;

for each of the multiple received messages:

according to the structured microservice configuration data, analyzing one or more fields of the received message to determine a correlation identifier associated with the received message;

according to the determined correlation identifier, identifying one of the multiple request data structures; and

according to one or more fields of the received message, storing an event message entry in the identified request data structure;

determine throughput values for each of the multiple microservice applications according to input and output events each associated with one of the multiple microservice applications;

identify a subset of the multiple microservice applications having throughput values less than a specified bottleneck threshold value; and

transforming a user interface of a user device to display at least a portion of the multiple event message entries and the subset of the multiple microservice applications having throughput values less than the specified bottleneck threshold value.

2. The system of claim 1 , wherein the instructions include:

obtaining message protocol data for each microservice application in the request processing architecture;

building a microservice configuration file according to the obtained message protocol data; and

storing the microservice configuration file in the structured microservice configuration data.

3. The system of claim 2 , wherein building the microservice configuration file includes:

determining an operation sequence of the multiple microservice applications within the request processing architecture; and

ordering the multiple microservice entries in the microservice configuration file according to the determined operation sequence.

4. The system of claim 2 , wherein building the microservice configuration file includes, for each microservice application in the request processing architecture:

identifying fields of a message transmitted by the microservice application; and

storing a microservice entry in the microservice configuration file according to the identified fields.

5. The system of claim 2 , wherein building the microservice configuration file includes, for each microservice application in the request processing architecture:

determining whether correlation identifier information is present in a message transmitted by the microservice application; and

assigning a retrieval status to a microservice entry in the microservice configuration file in response to determining that correlation identifier information is not present in the message transmitted by the microservice application.

6. The system of claim 1 , wherein the instructions further include, for each of the multiple received messages:

determining whether the one or more fields of the received message include sensitive data, according to the structured microservice configuration data; and

masking at least a portion of the one or more fields prior to storing the event message entry in the identified request data structure.

7. The system of claim 1 , wherein determining the correlation identifier includes:

determining at least one of a name and a type of the received message;

scanning multiple microservice entries of the structured microservice configuration data to identify a match with at least one of the name and type of the received message; and

obtaining the correlation identifier according to the matched microservice entry.

8. The system of claim 1 , wherein the multiple messages transmitted by the identified microservice applications are received via at least one event monitoring application programming interface (API).

9. The system of claim 8 , wherein determining the correlation identifier includes:

determining whether an API retrieval status has been assigned to the received message, according to the structured microservice configuration data; and

executing an API call to the microservice application that transmitted the received message to obtain correlation identifier information, in response to determining that an API retrieval status has been assigned to the received message.

10. The system of claim 1 , wherein transforming the user interface includes:

receiving a user input requesting a status associated with a specified one of the multiple request data structures;

obtaining a latest one of the multiple event message entries of the specified request data structure; and

modifying the user interface to display the microservice application associated with the latest one of the multiple event message entries.

11. The system of claim 1 , wherein:

each request data structure is associated with a prescription drug fill request; and

the multiple microservice applications include a patient drug coverage confirmation microservice and a pharmacy fill location microservice.

12. A computerized method for automated non-intrusive event tracing in a microservice architecture, the method comprising:

accessing structured microservice configuration data to identify microservice applications of a request processing architecture, wherein the structured microservice configuration data includes multiple microservice entries each associated with one of multiple microservice applications of the request processing architecture, and the structured microservice configuration data specifies a flow of messages between the microservice applications in a flow path for a prescription fill request;

converting each step node within the flow path to a hash map;

subscribing to messages transmitted by the identified microservice applications for event monitoring;

receiving multiple messages transmitted by the identified microservice applications;

for each of the multiple received messages:

according to the structured microservice configuration data, analyzing one or more fields of the received message to determine a correlation identifier associated with the received message;

according to the determined correlation identifier, identifying one of multiple request data structures, wherein each of the multiple request data structures includes multiple event message entries associated with a specific correlation identifier; and

according to one or more fields of the received message, storing an event message entry in the identified request data structure;

determining throughput values for each of the multiple microservice applications according to input and output events each associated with one of the multiple microservice applications;

identifying a subset of the multiple microservice applications having throughput values less than a specified bottleneck threshold value; and

transforming a user interface of a user device to display at least a portion of the multiple event message entries and the subset of the multiple microservice applications having throughput values less than the specified bottleneck threshold value.

13. The method of claim 12 , further comprising:

obtaining message protocol data for each microservice application in the request processing architecture;

building a microservice configuration file according to the obtained message protocol data; and

storing the microservice configuration file in the structured microservice configuration data.

14. The method of claim 13 , wherein building the microservice configuration file includes:

determining an operation sequence of the multiple microservice applications within the request processing architecture; and

ordering the multiple microservice entries in the microservice configuration file according to the determined operation sequence.

15. The method of claim 13 , wherein building the microservice configuration file includes, for each microservice application in the request processing architecture:

identifying fields of a message transmitted by the microservice application; and

storing a microservice entry in the microservice configuration file according to the identified fields.

16. The method of claim 13 , wherein building the microservice configuration file includes, for each microservice application in the request processing architecture:

determining whether correlation identifier information is present in a message transmitted by the microservice application; and

assigning a retrieval status to a microservice entry in the microservice configuration file in response to determining that correlation identifier information is not present in the message transmitted by the microservice application.

17. The method of claim 12 , wherein the method further comprises, for each of the multiple received messages:

determining whether the one or more fields of the received message include sensitive data, according to the structured microservice configuration data; and

masking at least a portion of the one or more fields prior to storing the event message entry in the identified request data structure.

18. The method of claim 12 , wherein determining the correlation identifier includes:

determining at least one of a name and a type of the received message;

scanning multiple microservice entries of the structured microservice configuration data to identify a match with at least one of the name and type of the received message; and

obtaining the correlation identifier according to the matched microservice entry.

19. The method of claim 12 , wherein the multiple messages transmitted by the identified microservice applications are received via at least one event monitoring application programming interface (API).

20. The method of claim 19 , wherein determining the correlation identifier includes:

determining whether an API retrieval status has been assigned to the received message, according to the structured microservice configuration data; and

executing an API call to the microservice application that transmitted the received message to obtain correlation identifier information, in response to determining that an API retrieval status has been assigned to the received message.