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