Enables arbitrary class resolution, which is important for using the same class definition from ahead-of-time compilation (eg setup.py) This mostly requires writing additional tests, but there is also some required work on doc comments.
Some choices here for managing hooks
- python-requests - this requires some minor amount of work to get working on Jython (methods are too long to compile to Java bytecode)
- Google HTTP client - high performance, looks reasonable to use - especially with a higher level language
This is necessary to get guranteed once-and-only-once event processing. This really is a per point-of-contact investigation. Computational bolts within Storm have no such issues. In particular, our web hooks probably need to work with some concept of a transaction id to ensure persistence.
This epic involves:
- Prototype a spout that streams in sample MaaS data about servers as tuples
- Bolt to augment tuples with autoscaling groups (ASG), by looking up this label for each tuple
- Bolt implement a rolling window per ASG to implement some "interesting" policy; this will get further decomposed so we can get flexibility in the decision process, but start small for now
- Bolt to carry out decision, including persistence support