This document compares the batch and streaming capabilities of Spark and Storm. Spark supports both batch and micro-batch processing while Storm supports micro-batch and real-time stream processing. Spark has been in production mode since 2013 and is implemented in Scala, while Storm has been used since 2011 and is implemented in Clojure and Java. Spark includes libraries for SQL, streaming, and machine learning while Storm uses spouts to read data streams and bolts to filter and join data in topologies. Both integrate with Hadoop and support fault tolerance, though Spark has improved reliability when used with YARN. Performance tests show Spark Streaming can process more records per second than Storm.