Introduction
Stargazer is a flexible vtuber tracker, reborn.
It's the second attempt to rewrite pystargazer in Rust. The first attempt is stargazer-rs, of which the development has been stalled for a while.
This new version attempts to utilize a more modern microservice architecture, and is meant to be stable and simple to develop and deploy.
Architecture
Note: this is subject to change during development process. For up-to-date graph, see arch.drawio.
The system is designed to be flexible and easy to extend, which composed of multiple modules. Include:
- A centralized MongoDB as shared data source
- A coordinator to distribute tasks
- A worker pool to execute tasks
- A message queue to collect and dispatch messages generated by workers
- Multiple middlewares to provide extra functionality
- Multiple clients(bots) to send the message to subscribers
- A Web UI for users to manage their subscribe preference
- An API to manage the system and provide functionality to frontend and bots