  Function-as-a-Service (FaaS) is a popular cloud computing model in which
applications are implemented as work flows of multiple independent functions.
While cloud providers usually offer composition services for such workflows,
they do not support cross-platform workflows forcing developers to hardcode the
composition logic. Furthermore, FaaS workflows tend to be slow due to cascading
cold starts, inter-function latency, and data download latency on the critical
path. In this paper, we propose GeoFF, a serverless choreography middleware
that executes FaaS workflows across different public and private FaaS
platforms, including ad-hoc workflow recomposition. Furthermore, GeoFF supports
function pre-warming and data pre-fetching. This minimizes end-to-end workflow
latency by taking cold starts and data download latency off the critical path.
In experiments with our proof-of-concept prototype and a realistic application,
we were able to reduce end-to-end latency by more than 50%.
