The Service Unit Agent (SUA) is the part of the Ensemble puzzle responsible for actually dealing with the needs of integrating an individual formula in the Ensemble space. The SUA starts its life when being fired by the Machine Agent, as defined in bug #617042.
The Machine Agent must provide the agent with the needed details for it to run: the $ENSEMBLE_ZOOKEEPER_HOSTS and $ENSEMBLE_MACHINE_ID environment variable must be in place so that the base agent class (bug #614508) will work correctly. In addition to these basic settings, it will also need to be told its service id, through the $ENSEMBLE_SERVICE_UNIT_ID environment variable, so that it knows its own identity. The fact that this latter setting is an environment variable (rather than a command line argument) makes it easier for tools fired by the SUA to work properly in the same context as well.
Once the SUA is alive, it should notify Ensemble of this fact by calling the ServiceUnitState.connect_agent() method (bug #617541).
This is the scope for this bug. Once that foundational mechanism is in place, the SUA should start to handle the formula it was asked to manage. This follow up task is covered in bug #617581.