Flink, Spark, and Storm are three popular streaming platforms compared on performance. A benchmark was created to simulate an advertising analytics pipeline with events streamed to Kafka. Flink and Storm had similar linear latency increases with throughput. Spark had higher latency due to micro-batching, but could handle higher throughput. At very high throughput, Storm performed best with acknowledgments disabled, while Flink provided low latency with processing guarantees. Overall, the platforms demonstrated tradeoffs between latency, throughput and exactly-once processing.