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.

1.1 KiB

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