1. A software domain model that enables simultaneous independent development of software components, comprising: a first component; a second component; a core layer that defines an item that can be accessed by the first component and the second component; and wherein the first component can extend the item, and wherein the second component can independently and separately extend the item; a software layer that can use the first component and the second component to perform a holistic task through a set of micro-orchestrations, wherein a micro-orchestration invokes a piece of functionality in a component, the core layer, and/or the software layer.