Batch Processing Vs. Stream Processing Mapreduce, Spark, And System Design Explained