The original implementation of this library was useful but bundled some assumptions about the specific operational details of systems managed by the development team (which included me). Notably, all metrics were converted to rejection rates based on the same formula that was used internally and the integrated CPU metric assumed that all code ran on VMs rather than containers.
This version takes the same concepts from the original and breaks them down into more granular components to make the library more adaptable to different situations. Some of the notable changes include:
- Update the rolling window library to include bug fixes and performance optimizations
- Add support request classification
- Add support for deterministic load shedding rules
- Separate the capacity, failure probability, and rejection rate concepts
- Remove all 3rd party integrations