This lecture introduces stream processing as a method of handling possibly infinite elements by pushing them through a pipeline of operations. It explores the motivation behind streaming APIs, the goals of stream processing, and its relation to the Reactive Manifesto. The focus is on asynchronous stream processing formalized by the reactive streams specification, with examples ranging from tweet stream analysis to grading infrastructure. The lecture also discusses how streaming helps achieve reactive goals but emphasizes that resilience and other aspects are not automatically guaranteed. Challenges such as resource efficiency and failure handling are highlighted, providing a comprehensive overview of the complexities involved in streaming systems.