Overview
Explore a case study on building a scalable real-time video analysis pipeline using Rust, GStreamer, and Pravega in this 34-minute conference talk from Strange Loop 2021. Delve into the challenges of creating a scalable video processing pipeline, understand how Pravega, GStreamer, and Rust complement each other, and learn to leverage Rust's language features for managing complexity. Discover practical patterns developed during the project, including client design, ownership concepts, and the reactor pattern. Gain insights into Rust's strengths in handling complex real-world applications, error management, tracing, and debugging. Led by Tom Kaitchuck, a core contributor to the Pravega project and experienced Rust developer, this talk offers valuable perspectives on concurrent programming, consistency algorithms, and distributed system design.
Syllabus
Intro
Gstreamer
Benefits of a streaming architecture
Pravega design
End to end pipeline
Demo
Software Values
Rust's values
The usual narrative
Our problem
Client design
What's in a method signature?
Thinking about ownership
Rust doesn't need the visitor pattern
Using the type system to enforce invariants - 3
Problems we faced
The reactor pattern
The async reactor pattern
What we came to love
Tools for error handling, tracing, and debugging
Taught by
Strange Loop Conference