About Composite Objects

From AgileApps Support Wiki

A simple object corresponds to a single row in a table--like a row in a spreadsheet, it can have multiple fields, but each field contains a single data value. A composite object is one that includes relationships to other tables--so a customer can have multiple orders, for example, and an order can have multiple products.

To put things another way: Fields in a simple object contain data that is essentially "primitive" in nature--strings, numbers, and dates. Those values may reference other objects, but the dependent objects must be handled in a separate transaction. (Transactional safety then becomes an issue if processing is interrupted.)

But in a composite object, fields that reference other objects can be used to manipulate the dependent objects at the same time as the original object. Transactional safety can then be assured, because either the entire transaction succeeds, or (if it fails) the system state is the same as if the transaction never started.

A composite object, then, is any set of objects related by Lookup relationships that are processed in a single transaction. That way, either all attempted operations on the collection of objects succeed, or none of them do--so the database is never left in a "halfway" state.

Learn More: Working with Composite Objects