Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iskorotkov/bully-election
Bully election algorithm for distributed systems
https://github.com/iskorotkov/bully-election
chaos-engineering distributed-systems docker go kubernetes resilience
Last synced: 3 days ago
JSON representation
Bully election algorithm for distributed systems
- Host: GitHub
- URL: https://github.com/iskorotkov/bully-election
- Owner: iskorotkov
- License: mit
- Created: 2021-03-16T19:27:46.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2022-01-19T17:17:22.000Z (almost 3 years ago)
- Last Synced: 2024-06-21T01:45:16.692Z (7 months ago)
- Topics: chaos-engineering, distributed-systems, docker, go, kubernetes, resilience
- Language: Go
- Homepage:
- Size: 104 KB
- Stars: 0
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bully election algorithm
[![CodeQL](https://github.com/iskorotkov/bully-election/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/iskorotkov/bully-election/actions/workflows/codeql-analysis.yml)
Bully election algorithm for distributed systems implemented in Go for deploying in Kubernetes clusters.
- [Bully election algorithm](#bully-election-algorithm)
- [Monitor](#monitor)
- [Build](#build)
- [Deploy](#deploy)
- [Limitations](#limitations)
- [Links](#links)## Monitor
1. `/metrics` - use metrics endpoint to get info about replica state,
1. Bully election dashboard - [web app for monitoring entire cluster](https://github.com/iskorotkov/bully-election-dashboard).## Build
```sh
make build # to build locally.
make test # to run all tests.
make build-image # to build Docker image.
```## Deploy
```sh
make deploy # to deploy in Kubernetes cluster.
```## Limitations
1. sometimes cluster selects wrong leader on deployment creation,
1. when number of pods is high (>=20) there may be several leaders selected.## Links
- [Bully algorithm - Wikipedia](https://en.wikipedia.org/wiki/Bully_algorithm)
- [Bully Election Algorithm Example](https://www.cs.colostate.edu/~cs551/CourseNotes/Synchronization/BullyExample.html)
- [Alternative implementation (Go)](https://github.com/TimTosi/bully-algorithm)