General artifacts in a role’s implementation

A role specification within a service can be implemented by means of a service artifact instead of a component artifact.

All a client of the role needs (the channel interface) is specified also for a service application. Also, all the spread mechanism needs is to have a config field in the artifact, and a service application has such a field.

Upon deployment, service roles are promoted to their own deployment within a solution with a top deployment governing the life cycle of the sub service deployments.

Configuration spread proceeds naturally in a recursive manner, until it reaches leaf roles: roles implemented by a component or by a builtin artifact.