Building Digits: Efficient Serving of Static Views with Google Cloud Spanner
At Digits, we strive to push the bounds of technology in order to deliver radically more useful, delightful software experiences for our customers. We’re excited to begin sharing a closer look at the technical foundations that underpin our products in a new series of blog posts called Building Digits. Without further ado…
Let’s talk about viewing complex data. One of our primary goals at Digits is to provide business owners with insightful and holistic views of their company’s finances, in substantially real-time.
Achieving this involves three major, independent steps:
- We collect all of their relevant data from various sources, such as their QuickBooks, the financial institutions they bank with, their corporate credit card providers, etc.
- We apply our algorithms and proprietary datasets to extend, interpret, and tease out meaning from all of their data.
- We consolidate and aggregate the results into a holistic view that we then visualize for them on their dashboard.
We refer to the pieces of data that we receive from third party systems as Facts. This is not a judgement of the credibility or immutability of these systems, but rather a delineation of what is (and what is not) under our control.
For example, if we receive a transaction from an external source that looks like
05/12/20 - Taxi $15.05, we might classify it as
Transportation. Later, we may receive another piece of information that leads us to believe that this transaction was actually a client expense, and is better classified as
Meals & Entertainment. In this example, the transaction itself, the fact, did not change—but our interpretation of it did.
We refer to insights and analysis that are performed by Digits, based on all of the Facts that we have received, as Computed Data. In the example above, this involved a category classification of a transaction. In other cases, this might involve determining that two external pieces of information actually represent the same physical transaction, or detecting that a particular transaction tends to recur on a regular interval and that it should be treated as a subscription.