A computer implemented method for assembling a software application in a network attached computing environment, the application being defined by a set of required software services to constitute the application, the required services being selected from services indicated in an application component registry, characterised in that the method comprises: creating, by the application component registry, a new block in a blockchain data structure, the new block including data to identify at least a subset of the set of required services; generating, by one or more service providers, one or more further blocks in the blockchain data structure, each of the further blocks including data to reference a service provider for providing one or more of the required services; receiving, by the application component registry, the one or more further blocks from the blockchain data structure; selecting, by the application component registry, one or more service providers identified in the one or more further blocks of the blockchain to provide the set of required services; generating, by the application component registry, a specification for an application assembler component to assemble the software application, the specification identifying the services provided by the selected one or more of the service providers identified in the blockchain; and assembling, by the application assembler component, the application for deployment as an executable application based on the specification, wherein a block in the blockchain is hashed including a hash of an immediately preceding block in the blockchain to link the block to the immediately preceding block to create a chain of blocks, such that the data in the blocks of the blockchain is irrefutable, wherein each of the further blocks defines a performance characteristic of a service provided by a service provider referenced by the further block, and wherein selecting one or more service providers is based on the performance characteristics of each of the further blocks. creating, by the application component registry, a new block in a blockchain data structure, the new block including data to identify at least a subset of the set of required services; generating, by one or more service providers, one or more further blocks in the blockchain data structure, each of the further blocks including data to reference a service provider for providing one or more of the required services; receiving, by the application component registry, the one or more further blocks from the blockchain data structure; selecting, by the application component registry, one or more service providers identified in the one or more further blocks of the blockchain to provide the set of required services; generating, by the application component registry, a specification for an application assembler component to assemble the software application, the specification identifying the services provided by the selected one or more of the service providers identified in the blockchain; and assembling, by the application assembler component, the application for deployment as an executable application based on the specification, wherein a block in the blockchain is hashed including a hash of an immediately preceding block in the blockchain to link the block to the immediately preceding block to create a chain of blocks, such that the data in the blocks of the blockchain is irrefutable, wherein each of the further blocks defines a performance characteristic of a service provided by a service provider referenced by the further block, and wherein selecting one or more service providers is based on the performance characteristics of each of the further blocks.