This project is a trade bot simulation environment. It uses Kafka for storage and streaming of timeseries trading data, and provides a microservice runtime that can dynamically load API endpoint plugins via Java's ServiceLoader.
- Simulate trading bots with timeseries data persistence to Kafka.
- Microservice runtime exposing REST APIs.
- API can be extended with plugins using ServiceLoader.
- Local deployment using Docker Compose.
- Utility scripts for managing related repositories.
- Docker & Docker Compose / podman also works
- Java 21 or higher (for development and plugins)
- Gradle (for building plugins)
- Bash and
yq(for repository management scripts) - SSH access for private repositories
The following scripts are provided to help manage multiple related git repositories in this project. Each script expects a repos.yaml file listing the repositories.
- Configure repositories in
repos.yaml: - Clone repos
clone.bash - Docker start
docker compose up
repos:
- name: repo-name # Local directory name
url: git@... # Git repository URL
branch: main # Default branch (optional)Clones all repositories from repos.yaml:
./clone.bash- Skips existing repositories
- Uses colored output for better visibility
Executes commands in all repositories:
./meta.bash <command>Provides shortcuts for common multi-repo operations on top of meta.bash.
Options:
-u,--update: Pushes all submodules, pulls all repositories, then pushes all repositories.-h,--help: Displays help information.
- Kafka UI: http://localhost:7000
- Schema Registry: http://localhost:7002
- Microservice API: http://localhost:6001 (configurable)