Trabant is a serverless architecture for multi-tenant orbital edge computing based on tinyFaaS. This repository contains the artifacts used to produce our paper. If you use this software in a publication, please cite it as:
Text: T. Pfandzelter, N. Bauer, A. Leis, C. Perdrizet, F. Trautwein, T. Schirmer, O. Abboud, and D. Bermbach, Trabant: A Serverless Architecture for Multi-Tenant Orbital Edge Computing, 2025.
Bibtex:
@article{pfandzelter2025trabant,
author = "Pfandzelter, Tobias and Bauer, Nikita and Leis, Alexander and Perdrizet, Corentin and Trautwein, Felix and Schirmer, Trever and Abboud, Osama and Bermbach, David",
title = "Trabant: A Serverless Architecture for Multi-Tenant Orbital Edge Computing",
year = 2025,
}Replicating the experiments in our paper requires four steps:
- Downloading and pre-processing the data set from Sentinel and VIIRS
- Setting up the hardware
- Running experiments
- Running analysis
Dataset files depend on the trajectory and data from the BUPT-1 satellite.
You can download the telemetry_all.csv file from the BUPT-1 dataset and place it in the satellite directory.
You can use the scripts in the workload directory to download the sunlit and ocean data from Sentinel Hub.
You will need a paid account (free ESA accounts have insufficient quotas), we paid ~35EUR for this data.
You will also need a dark image file from the VIIRS data set.
The hardware we use are two Raspberry Pi 4Bs with Raspberry Pi OS. Additionally, we use TinkerForge hardware to connect temperature and energy sensors:
Note that you must modify the code and scripts in this repository for the correct IP addresses, SSH usernames, and TinkerForge Device UUIDs.
Compile everything using make.
A recent (~1.23) Go toolchain is required.
Experiments are controlled using the shell scripts in the root of this repository.
The serverless functions used in this prototype use pre-trained TensorFlow models from our image_recognition_spencer project.
For analysis, use the Jupyter notebooks in the analysis directory.