Genesis is a flexible framework for migrations of any kind. New versions of software often need changes in the run time environment like changes of configurations, changes in databases and installations of new components. Genesis handles all kinds of changes in a flexible and extensible way.