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

2022-04-08T16:29:56Z.png