You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.1 KiB
Markdown

3 years ago
# FRMS
ForeLight Reactor Management System
3 years ago
Time to get to business
2 years ago
3 years ago
## Main design principles
- Flexible
- Reliable
- Scalable
Those principles guide our design choices
### Flexible
3 years ago
- System should support any reactor config
- should be able to change sub packages in isolation
- portability of packages i.e. can swap databases or sub in testing packages for memory based storage
### Reliable
3 years ago
- should support any # of reactors failing (including network related failures)
- should provide log and database correctness via atomic commits
- automatic log recovery and reactor functioning despite sub-system or network failures
- 100% uptime and seamless updates **goal**
3 years ago
### Scalable
- Add and use sensor packages at will
- Group reactors logically regardless of physical location
- Scale infrastructure to efficiently support any # of reactors
3 years ago
### TODO
3 years ago
- [ ] Convert reactor architecture to Rust
- [ ] build I2C rust interface
- [ ] connect to base gRPC via rust
- [ ] automate builds
- [ ] fix docker automation
- [ ] Add a test suite for both go and rust implementations
3 years ago