Pheromone

Pheromone is a serverless platform for expressive, ease-of-use, and high-performance function interactions. Pheromone applies two-level distributed scheduling for low-latency function invocations, and performs zero-copy data exchange using shared memory in each worker node.

Pheromone Architecture

The key design of Pheromone lies in data-centric function orchestration, which lets data trigger functions by making the consuming patterns of intermediate data (i.e., function results) explicit. Please see our paper for more details.

Getting Started

Pheromone runs on a Kubenetes cluster. Please refer to deploy/cluster for details.

Acknowledgement

  • Pheromone follows the cluster settings of Cloudburst, where it applies the same way to deploy the cluster and uses Anna as the durable key-value store.
  • Pheromone uses a high-performance C++ IPC library for shared-memory based data sharing. We slightly modify the code and place this in common/shm-ipc as a sub module