IP Library › Granted Patent US 12,430,225
Granted Patent B2
US 12,430,225 · App. 18/533,745 · Granted Sep 30, 2025

Systems and methods for health analysis of a modeled software system

Inventors: Ilya Ganelin (Berkeley, CA); Sharjeel Sohail (Redmond, WA); Peter Bakkum (San Francisco, CA); Amadeo Casas (Brookline, MA); Yi Chong Raynold Ng (Singapore, SG)
Assignee: STRIPE, INC.
G06F11/3604
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,430,225
App. No.
18/533,745
Granted
Sep 30, 2025
Kind
B2
Abstract

A method and apparatus are described for performing a health analysis of a modeled software system of a distributed services system. A stream of ledger transaction messages generated during execution of the software system are received and stored in a data store. A ledger data model is accessed, where the data model represents a state machine having states, data, and transitions between states indicative of proper functioning of the underlying software system. A ledger clearing operation is performed to generate monetary balances of states in the data model for a plurality of transactions, and aggregated values associated with operational characteristics of various states of the data model. From the aggregated values, a graphical user interface is caused to be display the values of the operational characteristics aggregated over a set of transactions as health indicators of the underlying operations performed by a software system, across software systems, or other subsets of configurable options.

Claims (59)

1. A computer-implemented method for performing a health analysis of a modeled software system of a distributed services system, comprising:

receiving, by a messaging interface of a ledger system, a stream of ledger transaction messages generated during execution of the software system by the distributed services system, each ledger transaction message stored in a data store coupled with the ledger system, and the stream comprising ledger transaction messages for a plurality of transactions performed by the software system;

accessing, by the ledger system, a ledger data model comprising a state machine that models: a plurality of states of the software system and a plurality of events that cause a transition between two states of the state machine of the ledger data model;

processing, by the ledger system, a ledger clearance operation with data from a subset of the received ledger transaction messages for states of the state machine of the ledger data model to generate monetary balances of states in the data model;

generating, by the ledger system, values of operational characteristics of the software system based on an analysis of an aggregation of balances for each state of the state machine of the ledger data model determined by the ledger clearance operation over the subset of the received ledger transaction messages; and

causing display of, by the ledger system, a graphical user interface that displays the values of the operational characteristics of the software system aggregated over the subset of the received ledger transaction messages.

2. The method of claim 1 , wherein each operational characteristic of the software system is associated with one or more processes performed by the software system, and a value of said each operational characteristic comprising an indicator of whether or not the one or more processes are functioning properly.

3. The method of claim 2 , further comprising:

generating a second value of said each operational characteristic for a plurality of software systems that perform the one or more processes; and

causing display of the graphical user interface to display the second value of the operational indicating whether or not the one or more processes are functioning properly for the plurality of software systems.

4. The method of claim 3 , wherein the plurality of software systems are independent software system that perform the one or more processes with independent implementations.

5. The method of claim 1 , further comprising:

accessing, by the ledger system, an expected value for an operational characteristic of a process of the software system; and

causing display of, by the ledger system, the graphical user interface to render a display indicative of whether or not a generated value for the operational characteristic satisfies the expected value for the operational characteristic.

6. The method of claim 5 , wherein the expected value is a user defined value.

7. The method of claim 5 , wherein the expected value is set by a user within the graphical user interface.

8. The method of claim 5 , wherein the processing of the ledger clearance operation is performed periodically, and the method further comprises:

generating a plurality of values of the operational characteristic of the software system over a period of time;

generating the expected value of the operational characteristic based on the plurality of values generated over the period of time;

generating a new value of the operational characteristic of the software system for a new time period after the period of time; and

generating, by the ledger system, the user interface to displays data indicative of whether the new value of the operational characteristic is within a predetermined range of the expected value of the operational characteristic.

9. The method of claim 8 , further comprising:

receiving, from a user system, one or more of a starting time value, an ending time value, and a length of time value that configures the period of time; and

generating the expected value of the operational characteristic based on a second plurality of values generated over the configured period of time.

10. The method of claim 8 , wherein the predetermined range is one of a default range value or a user defined range value.

11. A non-transitory computer readable storage medium, having instructions stored thereon, which when executed by a computer processing system, cause the computer processing system to perform operations for performing a health analysis of a modeled software system of a distributed services system, comprising:

receiving, by a messaging interface of a ledger system, a stream of ledger transaction messages generated during execution of the software system by the distributed services system, each ledger transaction message stored in a data store coupled with the ledger system, and the stream comprising ledger transaction messages for a plurality of transactions performed by the software system;

accessing, by the ledger system, a ledger data model comprising a state machine that models: a plurality of states of the software system and a plurality of events that cause a transition between two states of the state machine of the ledger data model;

processing, by the ledger system, a ledger clearance operation with data from a subset of the received ledger transaction messages for states of the state machine of the ledger data model to generate monetary balances of states in the data model;

generating, by the ledger system, values of operational characteristics of the software system based on analysis of an aggregation of balances for each state of the state machine of the ledger data model determined by the ledger clearance operation over the subset of the received ledger transaction messages; and

causing display of, by the ledger system, a graphical user interface that displays the values of the operational characteristics of the software system aggregated over the subset of the received ledger transaction messages.

12. The method of claim 1 , wherein each operational characteristic of the software system is associated with one or more processes performed by the software system, and a value of said each operational characteristic comprising an indicator of whether or not the one or more processes are functioning properly.

13. The method of claim 12 , further comprising:

generating a second value of said each operational characteristic for a plurality of software systems that perform the one or more processes; and

causing display of the graphical user interface to display the second value of the operational indicating whether or not the one or more processes are functioning properly for the plurality of software systems.

14. The method of claim 13 , wherein the plurality of software systems are independent software system that perform the one or more processes with independent implementations.

15. The method of claim 11 , further comprising:

accessing, by the ledger system, an expected value for an operational characteristic of a process of the software system; and

causing display of, by the ledger system, the graphical user interface to render a display indicative of whether or not a generated value for the operational characteristic satisfies the expected value for the operational characteristic.

16. The method of claim 15 , wherein the processing of the ledger clearance operation is performed periodically, and the method further comprises:

generating a plurality of values of the operational characteristic of the software system over a period of time;

generating the expected value of the operational characteristic based on the plurality of values generated over the period of time;

generating a new value of the operational characteristic of the software system for a new time period after the period of time; and

generating, by the ledger system, the user interface to displays data indicative of whether the new value of the operational characteristic is within a predetermined range of the expected value of the operational characteristic.

17. The method of claim 16 , further comprising:

receiving, from a user system, one or more of a starting time value, an ending time value, and a length of time value that configures the period of time; and

generating the expected value of the operational characteristic based on a second plurality of values generated over the configured period of time.

18. A system, comprising:

a memory having instructions stored thereon; and

a processing system coupled with the memory, configured to execute the instructions causing the processing system to perform operations for performing a health analysis of a modeled software system of a distributed services system, comprising:

receiving a stream of ledger transaction messages generated during execution of the software system by the distributed services system, each ledger transaction message stored in a data store coupled with the ledger system, and the stream comprising ledger transaction messages for a plurality of transactions performed by the software system;

accessing a ledger data model comprising a state machine that models: a plurality of states of the software system and a plurality of events that cause a transition between two states of the state machine of the ledger data model;

processing a ledger clearance operation with data from a subset of the received ledger transaction messages for states of the state machine of the ledger data model to generate monetary balances of states in the data model;

generating values of operational characteristics of the software system based on an analysis of an aggregation of balances for each state of the state machine of the ledger data model determined by the ledger clearance operation over the subset of the received ledger transaction messages; and

causing display of a graphical user interface that displays the values of the operational characteristics of the software system aggregated over the subset of the received ledger transaction messages.

19. The system of claim 18 , wherein each operational characteristic of the software system is associated with one or more processes performed by the software system, and a value of said each operational characteristic comprising an indicator of whether or not the one or more processes are functioning properly.

20. The system of claim 18 , the processing system configured to perform further operations comprising:

accessing, by the ledger system, an expected value for an operational characteristic of a process of the software system; and

causing display of, by the ledger system, the graphical user interface to render a display indicative of whether or not a generated value for the operational characteristic satisfies the expected value for the operational characteristic.

Assignments (2)
CHANGE OF NAME Recorded Mar 6, 2026
From: STRIPE, INC.
To: STRIPE, LLC
Reel/Frame 075033/0690 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2023
From: GANELIN, ILYA; CASAS, AMADEO; SOHAIL, SHARJEEL; BAKKUM, PETER; NG, YI CHONG RAYNOLD
To: STRIPE, INC.
Reel/Frame 065813/0653 →
Continuity (1)
Related Publication 20250190982A1 · Jun 12, 2025
References Cited (5)
US 20040225919A1 · Reissman · 2004 [cited by examiner]
US 20050188269A1 · El-Shimi · 2005 [cited by examiner]
US 20070150322A1 · Falchuk · 2007 [cited by examiner]
US 20100223446A1 · Katariya · 2010 [cited by examiner]
US 20120254830A1 · Conrad · 2012 [cited by examiner]