Streaming apps
Process continuous data
Overview
Streaming apps process continuous data flows in real-time, enabling immediate analysis and response to incoming information. These applications handle unbounded sequences of events, transforming and aggregating data as it arrives from various sources such as sensors, user interactions, or system logs. By operating on data in motion, stream apps facilitate rapid decision-making and allow systems to adapt dynamically to changing conditions across distributed environments.
What is a streaming app?
Streaming applications employ different processing logic at various data pipeline stages, adapting to each phase's specific requirements and constraints. They aggregate, filter, and enrich data streams, passing results to subsequent stages for further processing or storage. Streaming apps often operate in resource-constrained environments, requiring efficient utilization of computing power, memory, and network bandwidth.
The architectural landscape of stream processing can be elastic and distributed, potentially spanning multiple regions and geographies. This distributed nature allows scalability, fault tolerance, and the ability to process data closer to its source or where it's most relevant. Stream apps must maintain resilience when network inconsistencies occur and adapt to varying data volumes and velocities.
Key properties of streaming apps
Stream apps possess distinct characteristics that enable real-time data processing and analysis.
Continuous processing
Low latency
Scalable architecture
Fault tolerance
Stateful operations
Event-time processing
Akka components
- The reference data view is maintained separately, providing reference data for the streaming flow.
- The input topic consumer component processes incoming topic messages. Messages are filtered, enriched with data queried from the reference data view, and then transformed into commands forwarded to the stream data entity.
- The stream data entity processes and persists the commands, which trigger entity state changes.
- The final publish stream data consumer processes the stream data entity state changes and transforms them into messages posted to an output topic.
How Akka enables streaming apps
Akka enables distributed streaming applications across local and cloud environments with a unified model for creating interacting streaming services. It handles continuous data flows with backpressure management and resilience in distributed systems. Additionally, Akka offers unique capabilities for streaming HTTP endpoints within the SDK, such as a stream-oriented API for efficiently managing HTTP requests and responses, dynamic endpoint handling for optimized connection management, and built-in connection pooling that scales to meet fluctuating demand.