This document describes the evolution of AppsFlyer's architecture for processing big data analytics from real-time and batch data. The initial architecture struggled to keep up with increasing event volumes. It was redesigned with a functional programming approach using Clojure to break the system into small isolated services that communicate asynchronously through a centralized event stream. The new architecture utilizes best practices like infrastructure automation, service discovery, and monitoring to scale efficiently.