15 Building event-driven applications
This chapter covers
- Understanding event-driven architecture
- Gaining insight into the streaming platform concept
- Learning about stream processor integration challenges
- Starting with Atlas Stream Processing
- Exploring the Atlas Stream Processing architecture
- Mastering the
$source
aggregation pipeline stage
Event-driven applications represent a fundamental shift from the traditional request/response model. In the conventional approach, services are tightly coupled and must request data directly from one another, creating a web of dependencies and introducing latency, as each service must frequently poll the others for updates, often processing data in batches. This method not only slows the system but also makes it difficult to scale or adapt to new business requirements due to the rigid interconnections between services.
By contrast, event-driven architecture decouples these services by enabling them to communicate through events. Instead of polling for data, upstream services immediately notify downstream services whenever new data or events are generated. This real-time event notification system is typically managed through centralized platforms like Apache Kafka and RabbitMQ, which ensure that events are processed in the order in which they occur.