A common use case for downgrade is rolling back from problematic upgrades. Mesos promises compatibility between any 1.x and 1.y versions of masters/agents as long as new feature(s) is not used. However, currently there is no easy way to tell whether any “new” features (that would break downgrade) are used. And any incompatible downgrade would silently result in undefined behavior instead of failsafe. This is not ideal.
We propose to introduce minimum capability---the minimum capability a component needs to possess in order to recover from the certain state.