The code in this repository implements a genetic algorithm (GA) that optimises the number of bits set to 1 in a bit string of customisable length. Such a GA encourages the use of an interface or abstract class, modular methods, templates, and other techniques that inspired me to implement it as an educational exercise.
For educational purposes, the GA should eventually run in a distributed fashion where separate instances communicate through Apache Kafka and store their results in a shared Elasticsearch database.