The DFE provisioning sub-system is responsible for all instance management tasks. When an instance service request is received by the Console, it is dispatched to the provisioning system for resolution. The resolution may result in a success or failure depending on the request and the provisioner requested.
In the DFE world, a *provisioner* represents a contract to: manage instances, in a virtual environment, in a specific manner. This is physically represented in code by classes that adhere to one or more pre-defined interfaces. The diagram below shows the **DreamFactory** instance provisioner in code form.
Each provisioner is comprised of one or more *services* which provide portions of the provisioning process. This is not necessary. Provisioning may be completed by a single service. However, for flexibility and future expansion, the provisioning system is driven completely by configuration and discovery.
The default **DreamFactory** provisioner is installed via composer using the `dreamfactory/dfe-dreamfactory-provisioner` package. This package consists of a service which adheres to the provisioning contracts stated above, and can be used to create and manage instances.