Hi, I have developed a Demo application which includes three services:
- User-friendly load control panel. Using controls and switches, you can control the load on the database.
- A load generator. Which executes SQL and NoSQL queries in multiple concurrent connections to MySQL, Postgres, MongoDB databases.
- Dataset loading service. You can add several databases of different types to the demo application. The service will help you to create a schema and load demo dataset.
Valkey is used to queue service and store settings.
The control panel stores the load parameters in Valkey.
The load generation and dataset load services periodically retrieve the parameters and use them for their tasks.
For example, if you increase the number of parallel connections to the database. The load service will see this in the Valkey database and create additional Go routines for the additional connections to the database being loaded.
Valkey is doing a great job at this.
The application can be run in Docker or k8s using Helm.
You are welcome to try it and share feedback.
Project repository with installation instructions
I used RedisDesk to connect to Valkey on my macOS laptop, it looks convenient enough for my task.