ARCHIVED from builddistributedsystem.com on 2026-04-28 — URL: https://builddistributedsystem.com/tracks/advanced/tasks/task-10-4-streaming
TASK

Implementation

Build stream processor with windowing. Support tumbling and sliding windows with event-time processing.

Sample Test Cases

Add event to windowTimeout: 5000ms
Input
{"src":"c0","dest":"n1","body":{"type":"init","msg_id":1,"node_id":"n1","node_ids":["n1"]}}
{"src":"c1","dest":"n1","body":{"type":"stream_event","msg_id":2,"event":{"data":"click","value":1},"timestamp":5,"window_size":10}}
Expected Output
{"src":"n1","dest":"c0","body":{"type":"init_ok","in_reply_to":1,"msg_id":0}}
{"src":"n1","dest":"c1","body":{"type":"stream_event_ok","in_reply_to":2,"msg_id":1,"window_key":0,"window_events":1}}

Hints

Hint 1
Tumbling vs sliding windows
Hint 2
Handle late arrivals
Hint 3
Watermarks for event-time
OVERVIEW

Theoretical Hub

Stream Processing

Unlike batch, stream processes data continuously. Windows aggregate over time. Watermarks handle late data in event-time processing.

Key Concepts

streamingwindowingexactly-once
main.py
python
Build Stream Processing Pipeline - Advanced | Build Distributed Systems