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.
 
 
 
 
 
 
KeeganForelight 94f78233f5 init rust folder 2 years ago
.task/checksum removed task folder and fixed scp 2 years ago
docker initial rust branch, moving reactor to rust core 2 years ago
influxdb/startup server launches with proper config for itself and grafana, added storing config on exit or changes 2 years ago
reactor init rust folder 2 years ago
server initial rust branch, moving reactor to rust core 2 years ago
.dockerignore Added more config methods for server interface and started working on docker compose. Need to finish influx startup and grafana provisioning 2 years ago
.gitignore removed task folder and fixed scp 2 years ago
README.md initial rust branch, moving reactor to rust core 2 years ago
Taskfile.dist.yml removed task folder and fixed scp 2 years ago
build.sh initial rust branch, moving reactor to rust core 2 years ago
wc.sh fixed wc script to not include proto generated stuff 2 years ago

README.md

FRMS

ForeLight Reactor Management System

Time to get to business

Main design principles

  • Flexible
  • Reliable
  • Scalable

Those principles guide our design choices

Flexible

- 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

- 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**

Scalable

- Add and use sensor packages at will
- Group reactors logically regardless of physical location
- Scale infrastructure to efficiently support any # of reactors

TODO

  • 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