All Projects → cau-se → theodolite

cau-se / theodolite

Licence: Apache-2.0 License
Theodolite is a framework for benchmarking the horizontal and vertical scalability of cloud-native applications.

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects
Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
Dockerfile
14818 projects
Smarty
1635 projects

Projects that are alternatives of or similar to theodolite

Spring Cloud Stream
Framework for building Event-Driven Microservices
Stars: ✭ 662 (+3210%)
Mutual labels:  stream-processing, cloud-native
Hazelcast
Open-source distributed computation and storage platform
Stars: ✭ 4,662 (+23210%)
Mutual labels:  scalability, stream-processing
Spring Cloud Dataflow
A microservices-based Streaming and Batch data processing in Cloud Foundry and Kubernetes
Stars: ✭ 753 (+3665%)
Mutual labels:  stream-processing, cloud-native
football-events
Event-Driven microservices with Kafka Streams
Stars: ✭ 57 (+185%)
Mutual labels:  stream-processing, event-driven-microservices
Siddhi
Stream Processing and Complex Event Processing Engine
Stars: ✭ 1,185 (+5825%)
Mutual labels:  stream-processing, cloud-native
gryllidae
Opinionated CNCF-based, Docker Compose setup for everything needed to develop a 12factor app
Stars: ✭ 18 (-10%)
Mutual labels:  scalability, cloud-native
featurehub
FeatureHub - cloud native feature flags, A/B testing and remote configuration service. Real-time streaming feature updates. Provided with Java, JavaScript, Go, .Net, Android and Flutter SDKs.
Stars: ✭ 136 (+580%)
Mutual labels:  cloud-native
Java Note
后端研发——笔记
Stars: ✭ 54 (+170%)
Mutual labels:  cloud-native
dspatch
The Refreshingly Simple Cross-Platform C++ Dataflow / Pipelining / Stream Processing / Reactive Programming Framework
Stars: ✭ 124 (+520%)
Mutual labels:  stream-processing
Gauntlet
🔖 Guides, Articles, Podcasts, Videos and Notes to Build Reliable Large-Scale Distributed Systems.
Stars: ✭ 336 (+1580%)
Mutual labels:  scalability
go-getting-started
Develop Go Apps in Kubernetes with Okteto
Stars: ✭ 32 (+60%)
Mutual labels:  cloud-native
blas-benchmarks
Timing results for BLAS (Basic Linear Algebra Subprograms) libraries in R
Stars: ✭ 24 (+20%)
Mutual labels:  benchmarking
cOS-toolkit
❄️ cOS is a toolkit to build, ship and maintain cloud-init driven Linux derivatives based on container images
Stars: ✭ 91 (+355%)
Mutual labels:  cloud-native
openjdos
openjdos: a kubernetes-based datacenter operating system
Stars: ✭ 82 (+310%)
Mutual labels:  cloud-native
radondb-mysql-kubernetes
Open Source,High Availability Cluster,based on MySQL
Stars: ✭ 146 (+630%)
Mutual labels:  cloud-native
CRONO
A Shared Memory Multithreaded Graph Benchmark Suite for Multicores
Stars: ✭ 21 (+5%)
Mutual labels:  benchmarking
Less3
Less3 is an S3-compatible object storage server that runs on your laptop, servers, just about anywhere!
Stars: ✭ 16 (-20%)
Mutual labels:  cloud-native
hango-gateway
Hango API Gateway, build on Envoy & Istio.
Stars: ✭ 306 (+1430%)
Mutual labels:  cloud-native
siddhi-operator
Operator allows you to run stream processing logic directly on a Kubernetes cluster
Stars: ✭ 16 (-20%)
Mutual labels:  cloud-native
perfume
Interactive performance benchmarking in Jupyter
Stars: ✭ 33 (+65%)
Mutual labels:  benchmarking

Theodolite

A theodolite is a precision optical instrument for measuring angles between designated visible points in the horizontal and vertical planes. -- Wikipedia

Theodolite is a framework for benchmarking the horizontal and vertical scalability of stream processing engines. It consists of three modules:

Theodolite Benchmarking Tool

Theodolite aims to benchmark scalability of stream processing engines for real use cases. Microservices that apply stream processing techniques are usually deployed in elastic cloud environments. Hence, Theodolite's cloud-native benchmarking framework deploys its components in a cloud environment, orchestrated by Kubernetes. It is recommended to install Theodolite with the package manager Helm. The Theodolite Helm chart along with instructions how to install it can be found in the helm directory.

Theodolite Analysis Tools

Theodolite's benchmarking method maps load intensities to the resource amounts that are required for processing them. A plot showing how resource demand evolves with an increasing load allows to draw conclusions about the scalability of a stream processing engine or its deployment. Theodolite provides Jupyter notebooks for creating such plots based on benchmarking results from the execution framework. More information can be found in Theodolite analysis tool.

Theodolite Benchmarks

Theodolite comes with 4 application benchmarks, which are based on typical use cases for stream processing within microservices. For each benchmark, a corresponding load generator is provided. Currently, this repository provides benchmark implementations for Apache Kafka Streams and Apache Flink. The benchmark sources can be found in Thedolite benchmarks.

How to Cite

If you use Theodolite, please cite

Sören Henning and Wilhelm Hasselbring. (2021). Theodolite: Scalability Benchmarking of Distributed Stream Processing Engines in Microservice Architectures. Big Data Research, Volume 25. DOI: 10.1016/j.bdr.2021.100209. arXiv:2009.00304.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].