Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Creek
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Andy Kent
October 22, 2011
Programming
86
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Creek
Presentation given at LNUG discussing realtime aggregation over unbounded streams
Andy Kent
October 22, 2011
More Decks by Andy Kent
See All by Andy Kent
Coder Dojo London MIDI
andykent
2
88
Coder Dojo London Fireworks
andykent
0
130
River JS
andykent
2
660
Scalling Node to 50 Million Requests
andykent
5
310
Other Decks in Programming
See All in Programming
R8 の設定見直しでアプリサイズ削減
andpad
0
220
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
330
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
APNsからLive Activityを開始する話
yumnumm
0
170
ChromeでローカルLLM
ryu1013
0
140
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
460
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
1.1k
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
The untapped power of vector embeddings
frankvandijk
2
1.9k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Ethics towards AI in product and experience design
skipperchong
2
430
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
How to train your dragon (web standard)
notwaldorf
96
6.9k
It's Worth the Effort
3n
188
29k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
Transcript
REALTIME DATA ANALYSIS OVER UNBOUNDED STREAMS
REALTIME DATA ANALYSIS OVER UNBOUNDED STREAMS
REALTIME DATA ANALYSIS OVER UNBOUNDED STREAMS
REALTIME DATA ANALYSIS OVER UNBOUNDED STREAMS
WHEN YOU’VE GOT A HOSEPIPE WHAT YOU WANT IS A
CREEK
CREEK https://github.com/andykent/creek
AGGREGATORS count.alltime, count.timeboxed distinct.alltime, distinct.timeboxed max.alltime, max.timeboxed mean.alltime, mean.timeboxed min.alltime,
min.timeboxed sum.alltime, sum.timeboxed popular.timeboxed recent.limited
QUERY DSL track 'popular-words', aggregator: popular.timeboxed field: (o) -> o.text.toLowerCase().split('
') period: 60 precision: 5 top: 10
DEMO TIME!
ESPER
THE FUTURE...
RIVER river = require('river') ctx = river.createContext() ctx.addQuery "SELECT SUM(foo)
FROM my_stream", (newValues, oldValues) -> console.log(newValues, oldValues) c.push('my_stream', {foo:1, bar:2}) c.push('my_stream', {foo:3, bar:4}) https://github.com/forward/river
SQL-PARSER https://github.com/forward/sql-parser
PERSISTENCE
THE END