How pointed out in https://github.com/Yelp/pyleus/pull/76, we may need to reconsider which behaviors we want to implement in Bolt and SimpleBolt and even whether having a SimpleBolt class makes sense or not.
These changes may be not backward-compatible, but I am personally not too concerned about this, since we are still in beta. However, avoiding this entirely would be even better :)
How pointed out in https://github.com/Yelp/pyleus/pull/76, we may need to reconsider which behaviors we want to implement in
Bolt
andSimpleBolt
and even whether having aSimpleBolt
class makes sense or not.These changes may be not backward-compatible, but I am personally not too concerned about this, since we are still in beta. However, avoiding this entirely would be even better :)
Here the list of behaviors https://github.com/apache/storm/blob/master/storm-core/src/multilang/py/storm.py implements:
BasicBolt
(ourSimpleBolt
) (overrides user's anchors)BasicBolt
(prevents user to callack()
)BasicBolt
(prevents user to callfail()
)Bolt
(and, to be fair, replicated inBasicBolt
)We also want to add to this list our
process_tick()
.It's also worth mentioning how our Streamparse cousins have tackled the problem (class variables): https://github.com/Parsely/streamparse/blob/master/streamparse/bolt.py#L43
With this post I just wanted to detail the current situation, not my own biased ideas. Feel free to comment.