It&#x27;s like many things that are declarative - you can only do what has been explicitly enabled in the declaration handling logic.  This is good and bad.  It&#x27;s good because it restricts what is possible (protecting you slightly more from bad users) and can make learning and using the system easier.  But you can&#x27;t go beyond this.  With a non-declarative scheduler you can implement far more interesting (for better or worse) management systems.<p>One area where we&#x27;ve been seeing some interesting work happening is in stateful services running on top of schedulers.  With something like postgres, there is interesting logic that must happen for responsible management beyond just throwing up 3 of them.  You need to manage replication carefully.  When a node goes down somewhere, you need to react somewhere else in a controlled way.  With Mesos, you can write a scheduler that encodes your runbook.  With kubernetes, you need a lot more out-of-band stuff.