Handling billions of records with Big Objects
The Salesforce Platform inherits relational database design principles and values in a very explicit way and, when you create Custom Objects or when you add lookup or master-detail fields, you are defining a relationship. Defining data in a relational way is a very powerful feature, allowing a rich set of domain-specific data to be expressed, as we have seen with Seasons, Teams, Races, and Contestants so far in this book. We have also seen how we can use access patterns such as SOQL and DML to access that data as a whole in one operation if needed through the use of query joins or transactions (units of work) when updating data over several objects. This behavior is categorized by the acronym known as Atomicity, Consistency, Isolation, Durability (ACID).
When record volumes start to grow, the benefits of ACID come at a performance cost, mostly due to how relational databases in general physically store data on disk, but also its inherent...