PyData Madrid, 2024-01-18
Alex Fernández "pinchito"
Silverback developer at Tinybird
🤔 What does Tinybird do?
📑 Principles
🔧 Techniques
🪄 Tricks
And what does Tinybird not do?
It is not a ClickHouse wrapper
It does not store logs
It is not a DWH
Real time analytics
Process data at scale
Publish API endpoints
Ingest petabytes of data
Process many petabytes of data
Serve billions of requests
How do we do it?
From days, hours or minutes — to seconds
Process data as it comes
Reduce latencies
Blog: Real-Time Data Ingestion: The Foundation for Real-time Analytics
Really close to customers
Direct communication channels
Everyone does customer support
Fast iteration
Most engineers do on-call
Everyone suffers the pain
Everyone Deploys
Top-notch Production Culture
Use Tinybird as much as possible
Be your first user
Iterate fast
Communicate often
Don't wait for permission
Hardest principle to implement — and copy
More to the Point
Everything in the same repo
Ingest, Backend, UI Together
Includes code, tests, docs, tooling, infra, CI itself
A controversial practice (Google, Facebook)
When it works, works great!
Deploy tens of times per day
Write → Test → Review → Merge → Deploy
Everything goes straight to production
Event
Request
Pre-aggregate data
Aggregate ClickHouse operations
Fastest, more predictable response
Customers increase their data overnight by 2x, 5x, 10x
Be ready for deluges
Look for the next bottleneck
Of the Trade
Team of experts
Open source model
Contribute everything upstream
async/await? Copied from JavaScript? Or .net?
Python servers: tornado, gunicorn, starlette
Fastest performance
Explicit types
Checkmypy every time
I hate it
Catches a lot of errors
❓ Questions?