How does Kappa Architecture use a streaming-based approach to process data? What role do event streams, stream processing engines, and data replay play in this architecture? What factors should organizations consider when designing a Kappa-based data platform?