https://github.com/thinkonmay/thinkshare-daemon
Role
- Maintain gRPC connection to conductor service, pushing log and worker status.
- Initialize Hub, HID child process on demand from conductor.
- Run as a service, process bootup when server bootup.
- Register its existence to API server.
Principle
- Use GO instead of C whenever it is possible.
- Any process that heavily rely on Windows API and virtual driver call should be written in C#
- Child module failure must not affect daemon.
- The conductor server set the desired state of hub and hid on daemon.
- In case child module failure happened, daemon process must recover child module to desired state.
- API servers manage auto-update deployment with git commit Hash.
- self-contained executable package deploys as git repository.
- Mono repo management
- Avoid creating a whole new multimedia framework / library if possible.
Tech stack