PeterMoskovitsTransparentBGLoResSquare

Peter Moskovits

Head of Developer Education, Developer Relations

Why all data starts as a stream (and how we break it)

Data generation is the first phase of the data engineering lifecycle, where data originates from real-world events: clicks, purchases, sensor readings, and system logs. Those events happen in real time, but access to them is often batched, because systems sync on a schedule or connectivity is limited. The answer is to build event-driven systems that assume data arrives continuously. When constraints force you to work with batches, process each batch the moment it lands, so the pipeline keeps working in real time as the constraints are removed.

You rarely control when data is generated, how it's formatted, or when it becomes available. Some data is available the instant it's created, such as user interactions and application logs. Other data is generated in real time but reaches you later, such as smartwatch, glucose monitor, and wind turbine readings. Streams get broken by constraints you can't control and by delays you add yourself. You can't always fix the first, but you can avoid the second.

Topics:

  • What "data generation" means (and what it doesn't)
  • Real-time data generation vs. batched data access
  • Building event-driven systems for real time from the start
  • Working with data generation you don't control
  • Avoiding artificial delay by processing data the moment it arrives

Resources

  • Architecture | Apache Flink - Apache Flink documentation stating that credit card transactions, sensor measurements, machine logs, and user interactions "are generated as a stream," and that unbounded streams provide data as it is generated
  • Event-Driven Architecture (EDA): A Complete Introduction - Confluent's introduction to systems that detect, process, and react to real-time events as they happen, built from event producers, brokers, and consumers
  • Uses | Apache Kafka - Apache Kafka documentation describing website activity tracking (page views, searches, and other user actions) and log aggregation as real-time feeds, examples of data that can be captured as it is generated
Do you have questions or comments? Join us in the #developer-confluent-io community Slack channel to engage in discussions with the creators of this content.

Use the promo codes DATAENGINEERING & CONFLUENTDEV1 to get $25 of free Confluent Cloud usage and skip credit card entry.

Be the first to get updates and new content

We will only share developer content and updates, including notifications when new content is added. We will never send you sales emails. 🙂 By subscribing, you understand we will process your personal information in accordance with our Privacy Statement.