Another big feature of Vespene are pipelines
The docs already talk about them a lot here - http://docs.vespene.io/pipelines.html
A common use of these would be a build happens, then a deployment to a stage environment happens, some testing, and then a deployment to production - all if those builds all succeed along the way
You'd think this feature might have been really hard to implement but it wasn't, mostly because the data model was already nicely in place. Search for pipeline.py in the code tree for the model - there's really not much going on there.
Pipelines can be assigned graphically, but that isn't the easiest way - the easiest way are .vespene files as described here - http://docs.vespene.io/importing.html - which live in your code repo. They are simple YAML that can say a project is part of a given pipeline at a given step.
As of today (Nov 1 2018) you DO have to predefine the name of the pipeline and the name of the stages, but sometime this Monday (knock on wood), an addition of one line to .vespene.yaml will allow you to create them ALL from the .vespene file during an organizational import, making setup of complex CI/CD topologies for new services not require any logging in at all. I'll update the thread when this happens probably sometime Monday.
Pipelines can pass variables between them using output variables - http://docs.vespene.io/variables.html#output-variables.