Very good remark! Storm by default implements at-least-once semantics. If a bolt process executed an event and failed right away without acknowledging, an execution would get replayed (so you would buy/sell twice). However, there's a remedy! By sacrifacing latency you can have exactly-once-semantics, see Trident, Summingbird.