Why make this a mixin when it could just be a totally separate module or class? That way, it's clear that it doesn't depend upon any of the internals of Trebuchet and there is no risk of future conflict.

Also, maybe we should move the final solution to trebuchet itself, instead of putting it in the airbnb codebase since there are other codebases at Airbnb that already depend upon Trebuchet and would benefit from similar functionality.