Stripe services mentioned above have independent responsibilities
Collaborate to solve a large federated problem. An ideal solution provides a mental model for correctness—supported by trustworthy statistics—that easily generalizes to new use cases. Further, we want to represent all activity on the Stripe platform in a common data structure that can be analyzed by a single system. This is the way we approach it: Ledger encodes a state machine representation of producer systems, and models its behavior as a logical fund flow—the movement of balances (events) between accounts (states). Ledger computes all account balances to evaluate the health of the system, grouped by various subdivisions to generate comprehensive statistics.
This approach abstracts individual differences between underlying systems and provides mathematical evidence that they are functioning correctly. Ledger as a semantic data Brazil Mobile Number List store Ledger is a faithful representation of the underlying state of all payment processes on the Stripe platform. Instead of computing a derived dataset based on incoming data pipelines, Ledger models the actual work of producer systems, recording each operation as a transaction. Ledger modeling may diverge from upstream data, but we guard against these cases explicitly with data completeness checks.
Combined with our other data quality metrics, we can safely rely on Ledger’s data representation to monitor external systems. If we instrument Ledger, we indirectly instrument the data-producing pipelines. And, if we identify a problem, we alert our internal users to which part of their data pipeline is broken—and exactly how they can fix it. Blog > Ledger > Processing a charge Processing a charge with a creation event for a pending charge, and a release event for completion Inside of Ledger, we represent this activity as a movement of balances between two discrete states (creation and release), turning the above process into an observable state machine. |