This organization gathers all the repositories associated with the thesis project focusing on the development and evaluation of Ermes, a novel framework for stateful serverless computing designed to operate across the edge-cloud continuum.
Built with Go and WebAssembly, Ermes addresses the limitations of traditional, stateless cloud-centric FaaS platforms. It natively integrates state management into the serverless paradigm, utilizing a decentralized, locality-aware scheduling policy that co-locates computation and state to minimize latency in resource-constrained edge environments.
The repositories are divided into logical categories based on their role within the framework to make navigation easier.
- ermes-generic-node: Repository containing the source code to run a standard Ermes Node.
- ermes-function-registry: The Function Registry node of the framework, allowing functions to be cataloged and retrieved.
- ermes-central-repo: The Group Token Provider node of the Ermes framework, essential for managing permissions and authentication.
- ermes-common: Contains the Ermes framework's common code and utilities shared across various nodes.
- ermes-sdk-go: The Software Development Kit (SDK) used to develop Go functions compatible with Ermes and its state management API.
- ermes-function-template: A ready-to-use template for Go functions that integrates the Ermes SDK, providing a quick starting point.
- ermes-cli: The developer Command Line Interface (CLI) used to build and deploy functions and query templates.
- ermes-client-library: The interface used by client applications to seamlessly interact with the Ermes infrastructure.
- ermes-deploy: Repository containing Ansible playbooks and configuration files needed to deploy and manage the Ermes framework.
- ermes-benchmark: This repository contains the comprehensive benchmarking suite developed to test the performance, stress, and scalability of the Ermes Framework under dynamic mobility and high-concurrency scenarios.