  To promote structurally flexible controllers in self-adaptive software
systems, this paper proposes the use of micro-controllers. Instead of generic
monolithic controllers, like Rainbow, we advocate the use of service-specific
micro-controllers which can be based on microservices. Although traditional
generic controllers can be configured parametrically according to system needs,
their use and reuse are nevertheless restrictive because of the wide range of
services expected from the different stages of the feedback control loop.The
solution being advocated is to have structurally flexible controllers that can
be composed from micro-controllers. Controlling the architectural configuration
of these micro-controllers is a meta-controller that is able to configure the
controller according to the services required for controlling the target
system. The feasibility of the proposed approach of using micro-controllers at
the level of the controller is demonstrated in the context of the PhoneAdapter
case study in which micro-controllers are configured at run-time depending on
changes affecting the system or its environment.
