IP Library Granted Patent US 12670532
Granted Patent B2
US 12670532 · App. 18/533,732 · Granted Jun 30, 2026

Systems and methods for modeling distributed service systems by a ledger system

Inventors: Ilya Ganelin (Berkeley, CA); Joseph Pereira (Squamish, CA); Sharjeel Sohail (Redmond, WA); Peter Bakkum (San Francisco, CA)
Assignee: STRIPE, LLC
G06Q40/12G06F8/35
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 12670532
App. No.
18/533,732
Granted
Jun 30, 2026
Kind
B2
Abstract

A method and apparatus are described for modeling a software system of a distributed services system. The method includes receiving a stream of ledger transaction messages generated by a software system, which are then stored in a data store. A ledger system accesses a data model representing a state machine of the proper functioning of the software system. A ledger clearance operation is performed using the state machine and the data stored within the stream of ledger transaction messages in the data store to generate balances within states of the state machine. The ledger system detects an operational characteristic, such as proper function or improper function, of the software system based on a balance of a state in the state machine. Such detection is performed without knowledge of the underlying implementation of the software system.

Claims (42)

1 . A computer-implemented method for modeling a 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;

processing, by the ledger system, a ledger clearance operation using data associated with one or more of the received ledger transaction messages in to generate a balance for one or more states of a state machine, wherein the state machine is comprised within a ledger data model of the ledger system, and configured to model one or more processes of the software system via the one or more states;

detecting, by the ledger system, an operational characteristic of the software system based on the balance, wherein the detected operational characteristic conveys whether the software system is operating as expected or not as expected; and

causing display of, by the ledger system, a graphical user interface (GUI), that displays values of the detected operational characteristic that convey a functional status of the software system.

2 . The computer-implemented method of claim 1 , further comprising:

transmitting, to a user system associated with the software system, a message that conveys the functional status of the software system.

3 . The computer-implemented method of claim 1 , wherein the state machine maps the one or more processes of the software system to one or more money movements between accounts that are reported via the stream of ledger transaction messages.

4 . The computer-implemented method of claim 1 , further comprising:

determining whether the balance for the one or more states is zero or not zero, wherein a determination that the balance is not zero indicates that the software system is not operating as expected and a determination that the balance is zero indicates that the software system is operating as expected.

5 . The computer-implemented method of claim 4 , further comprising:

in response to determining that the balance for the one or more states is not zero, determining that a value associated with the one or more states is different from an expected predefined value; and

identifying one or more operations associated with the value.

6 . The computer-implemented method of claim 3 , wherein the software system moves money between accounts maintained by the distributed service system.

7 . The computer-implemented method of claim 3 , wherein the state machine defines an expected balance at a predetermined period, the expected balance of being associated with proper functioning of the software system.

8 . The computer-implemented method of claim 1 , wherein each ledger transaction message of the stream of ledger transaction messages generated during execution of the software system is associated with an event processed by the software system.

9 . 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 modeling a 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;

processing, by the ledger system, a ledger clearance operation using data associated with one or more of the received ledger transaction messages to generate a balance for one or more states of a state machine, the state machine comprised within a ledger data model of the ledger system and configured to model one or more processes of the software system via the one or more states;

detecting, by the ledger system, an operational characteristic of the software system based on the balance, wherein the detected operational characteristic conveys whether the software system is operating as expected or not as expected; and

causing display of, by the ledger system, a graphical user interface (GUI), that displays values of the detected operational characteristic that convey a functional status of the software system.

10 . The non-transitory computer readable storage medium of claim 9 , further comprising:

generating and transmitting, to a user system associated with the software system, a message that comprises the detected operational characteristic of the software system as an indication of proper or improper functioning of the software system conveys the functional status of the software system.

11 . The non-transitory computer readable storage medium of claim 9 , wherein the state machine maps the one or more processes of the software system to one or more money movements between accounts that are reported via the stream of ledger transaction messages.

12 . The non-transitory computer readable storage medium of claim 11 , further comprising:

determining whether the balance for the one or more states is zero or not zero, wherein a determination that the balance is not zero indicates that the software system is not operating as expected and a determination that the balance is zero indicates that the software system is operating as expected.

13 . The non-transitory computer readable storage medium of claim 12 , further comprising:

in response to determining that the balance for the one or more states is not zero, determining that a value associated with the one or more states is different from an expected predefined value; and

identifying one or more operations associated with the value as a reason that the software system is not operating as expected.

14 . 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 modeling a 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;

processing, by the ledger system, a ledger clearance operation using data associated with one or more of the received ledger transaction messages to generate a balance for one or more states of a state machine, the state machine comprised within a ledger data model of the ledger system and configured to model one or more processes of the software system via the one or more states;

detecting, by the ledger system, an operational characteristic of the software system based on the balance, wherein the detected operational characteristic conveys whether the software system is operating as expected or not as expected; and

causing display of, by the ledger system, a graphical user interface (GUI), that displays values of the detected operational characteristic that convey a functional status of the software system.

15 . The system of claim 14 , wherein the processing system is configured to perform further operations, comprising:

transmitting, to a user system associated with the software system, a message that conveys the functional status of the software system.

16 . The system of claim 14 , wherein the state machine maps the one or more processes of the software system to one or more money movements between accounts that are reported via the stream of ledger transaction messages.

17 . The system of claim 16 , wherein the processing system is configured to perform further operations, comprising:

determining whether the balance for the one or more states is zero or not zero, wherein a determination that the balance is not zero indicates that the software system is not operating as expected and a determination that the balance is zero indicates that the software system is operating as expected.

18 . The computer-implemented method of claim 1 , wherein each ledger transaction message in the stream of ledger transaction messages is stored in a data store coupled with the ledger system.

19 . The computer-implemented method of claim 1 , wherein the state machine models a plurality of events that cause a transition between two states of the state machine.

20 . The non-transitory computer readable storage medium of claim 9 , wherein each ledger transaction message in the stream of ledger transaction messages is stored in a data store coupled with the ledger system.