A method comprising: at one or more computing devices comprising one or more processors and one or more storage media storing one or more computer programs executed by the one or more processors to perform the method, performing operations comprising: maintaining a build catalog comprising a plurality of build catalog entries; wherein each build catalog entry, of the plurality of build catalog entries, comprises: an identifier of a version of a derived dataset corresponding to the build catalog entry, one or more dataset build dependencies (508A-N) of the version of the derived dataset corresponding to the build catalog entry, each of the one or more dataset build dependencies (508A-N) comprising an identifier of a version of a child dataset from which the version of the derived dataset corresponding to the build catalog entry is derived, and a derivation program build dependency of the version of the derived dataset corresponding to the build catalog entry, the derivation program build dependency comprising an identifier of a version of a derivation program executed to generate the version of the derived dataset corresponding to the build catalog entry; creating a new version of a particular derived dataset from a committed successful transaction; and adding a new build catalog entry to the build catalog, the new build catalog entry comprising an identifier of the new version of the particular derived dataset, the identifier of the new version of the particular derived dataset being a transaction commit identifier assigned to the committed successful transaction. maintaining a build catalog comprising a plurality of build catalog entries; wherein each build catalog entry, of the plurality of build catalog entries, comprises: an identifier of a version of a derived dataset corresponding to the build catalog entry, one or more dataset build dependencies (508A-N) of the version of the derived dataset corresponding to the build catalog entry, each of the one or more dataset build dependencies (508A-N) comprising an identifier of a version of a child dataset from which the version of the derived dataset corresponding to the build catalog entry is derived, and a derivation program build dependency of the version of the derived dataset corresponding to the build catalog entry, the derivation program build dependency comprising an identifier of a version of a derivation program executed to generate the version of the derived dataset corresponding to the build catalog entry; an identifier of a version of a derived dataset corresponding to the build catalog entry, one or more dataset build dependencies (508A-N) of the version of the derived dataset corresponding to the build catalog entry, each of the one or more dataset build dependencies (508A-N) comprising an identifier of a version of a child dataset from which the version of the derived dataset corresponding to the build catalog entry is derived, and a derivation program build dependency of the version of the derived dataset corresponding to the build catalog entry, the derivation program build dependency comprising an identifier of a version of a derivation program executed to generate the version of the derived dataset corresponding to the build catalog entry; creating a new version of a particular derived dataset from a committed successful transaction; and adding a new build catalog entry to the build catalog, the new build catalog entry comprising an identifier of the new version of the particular derived dataset, the identifier of the new version of the particular derived dataset being a transaction commit identifier assigned to the committed successful transaction.