  Fog Computing is now emerging as the dominating paradigm bridging the compute
and connectivity gap between sensing devices (a.k.a. "things") and
latency-sensitive services. However, as fog deployments scale by accumulating
numerous devices interconnected over highly dynamic and volatile network
fabrics, the need for self-configuration and self-healing in the presence of
failures is more evident now than ever. Using the prevailing methodology of
self-stabilization, we propose a fault-tolerant framework for distributed
control planes that enables fog services to cope and recover from a very broad
fault model. Specifically, our model considers network uncertainties, packet
drops, node fail-stop failures, and violations of the assumptions according to
which the system was designed to operate, such as an arbitrary corruption of
the system state. Our self-stabilizing algorithms guarantee automatic recovery
within a constant number of communication rounds without the need for external
(human) intervention. To showcase the framework's effectiveness, the
correctness proof of the proposed self-stabilizing algorithmic process is
accompanied by a comprehensive evaluation featuring an open and reproducible
testbed utilizing real-world data from the intelligent transportation domain.
Results show that our framework ensures a fog ecosystem recovery from faults in
constant time, analytics are computed correctly, while the overhead to the
system's control plane scales linearly towards the IoT load.
