  The serverless and functions as a service (FaaS) paradigms are currently
trending among cloud providers and are now increasingly being applied to the
network edge, and to the Internet of Things (IoT) devices. The benefits include
reduced latency for communication, less network traffic and increased privacy
for data processing. However, there are challenges as IoT devices have limited
resources for running multiple simultaneous containerized functions, and also
FaaS does not typically support long-running functions. Our implementation
utilizes Docker and CRIU for checkpointing and suspending long-running blocking
functions. The results show that checkpointing is slightly slower than regular
Docker pause, but it saves memory and allows for more long-running functions to
be run on an IoT device. Furthermore, the resulting checkpoint files are small,
hence they are suitable for live migration and backing up stateful functions,
therefore improving availability and reliability of the system.
