Spaces:
Sleeping
Proof-tier recording β shot list
A ~90-second screen recording that shows the real streaming pipeline end to end, then the live demo site. Keep it tight; recruiters skim.
Before you hit record
- Free the RAM: close other apps. Have Docker Desktop running.
- Reset for a clean run so counts start at zero. Use
--profile streamon thedownβ the Spark checkpoint volume belongs to the profiledspark-jobservice, and a plaindocker compose down -vleaves it behind. A stale checkpoint makes the next run fail withoffset was changed from N to M, some data may have been missed:Wait untildocker compose --profile stream down -v # wipe ALL volumes incl. spark_checkpoints docker compose up -d # redpanda + cassandra + qdrantdocker compose psshows cassandra healthy (~60 s). Then produce once and run the Spark job once (below) β because the job is checkpointed, re-running it without a fresh reset processes zero new rows. - Have four terminals (or panes) ready in the repo with the venv active β
the Python commands below need the project deps (
confluent-kafka, etc.):If activation is blocked by execution policy, either run.venv\Scripts\Activate.ps1 # Windows PowerShell # source .venv/bin/activate # macOS/LinuxSet-ExecutionPolicy -Scope Process RemoteSignedfirst, or skip activation and call the interpreter directly:.venv\Scripts\python.exe <script> .... - Optional: increase terminal font size for legibility.
Recording tools
- Windows: Xbox Game Bar (Win+G) or OBS Studio (free). OBS gives the cleanest output and lets you crop to the terminal + browser.
- Export as MP4, 1080p, < 30 MB if you plan to commit it; otherwise upload unlisted to YouTube and embed the link (see below).
Command blocks below are written for Windows PowerShell (the recording shell); bash/macOS equivalents are noted where they differ. Python commands assume the venv is active (see prep) β otherwise call
.venv\Scripts\python.exe.
The shots
Architecture (5 s). Show the README architecture diagram or the app's "Architecture" tab. One sentence of voiceover/caption: "Documents stream through Kafka, Spark embeds them, they land in Cassandra and Qdrant."
Start streaming (20 s). Split screen:
- Terminal A β produce into Kafka (venv active β see prep):
python producer/produce.py --limit 300 --rate 100 - Terminal B β run the Spark job; let the log line land on camera. The
--buildis needed the first time (and after any code change):Point at:docker compose --profile stream up --build spark-jobINFO Batch N: wrote 300 docs to Cassandra + Qdrant, thenINFO Stream finished.and a cleanexited with code 0.
- Terminal A β produce into Kafka (venv active β see prep):
Prove both stores populated (15 s).
docker exec streamsearch-cassandra cqlsh -e "SELECT count(*) FROM streamsearch.documents;" (Invoke-RestMethod http://localhost:6533/collections/documents).result.points_countShow 300 in each. (bash/macOS:
curl -s http://localhost:6533/collections/documents | jq .result.points_countβ needsjq; in PowerShell usecurl.exe, since barecurlis an alias forInvoke-WebRequest.)Query the streamed index with the same search stack (20 s).
python scripts/query_proof.py "support vector machine kernels"Point at a result whose
dense_rankandbm25_rankdiffer (e.g. dense 10 / bm25 2) to show hybrid fusion doing real work.The live demo site (25 s). Open the HF Space (https://huggingface.co/spaces/sharmaaryan/streamsearch):
- run a search, show ranked results with scores;
- paste a document into the Ingest box, submit, then search a phrase from it and show it appear in results within seconds.
End card (5 s). Show the live URL on screen.
After recording
- If committing the file: put it at
docs/demo.mp4and reference it in the README (renders as a link on GitHub; GitHub also auto-embeds an uploaded MP4 in a release/issue you can link to). - If hosting (YouTube/Loom): set
VIDEO_URLand the Streamlit UI shows it in the Architecture tab; put the same link at the top of the README.