On design principles for self-organizing network functions