704 B
704 B
Approach
Rule engine supports only simple comparison operators. The trade-off of this approach is that you can't encode complex rules. To be able to support more robust rules we could embed a scripting languages like lua, possibly at the cost of performance bottlenecks.
Performance
for 200*4=800 sig and 3 rules this python code takes about 0.04 secs on a AMD6410. The complexity of the rule engine is O(1) on the rule list selection based on the signal, O(n) on the application of those rules.
Final Thoughts
- Could have improved performance and reduced resouce usage by actually streaming the json, might introduce additionaly dependency
- Add support for more features for the rules