Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Dagster & Geomagical
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Noah Kantrowitz
February 09, 2021
Programming
190
0
Share
Dagster & Geomagical
Noah Kantrowitz
February 09, 2021
More Decks by Noah Kantrowitz
See All by Noah Kantrowitz
The Long Hello World
coderanger
0
23
The Long Hello World (with notes)
coderanger
0
83
What Python Can Learn From Other Languages
coderanger
0
87
What Python Can Learn From Other Languages (with notes)
coderanger
0
210
Swiss Army Django: Small Footprint ETL (with notes) - DjangoCon US
coderanger
0
340
Swiss Army Django: Small Footprint ETL - DjangoCon US
coderanger
0
87
How to look at space: PyCon AU
coderanger
0
150
Swiss Army Django: Small Footprint ETL
coderanger
0
120
Swiss Army Django: Small Footprint ETL (with notes)
coderanger
0
100
Other Decks in Programming
See All in Programming
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
2
150
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
450
Agentic Elixir
whatyouhide
0
390
Programming with a DJ Controller — not vibe coding
m_seki
3
150
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
180
Kingdom of the Machine
yui_knk
2
820
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
150
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
760
🦞OpenClaw works with AWS
licux
1
210
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
3
170
의존성 주입과 모듈화
fornewid
0
150
iOS機能開発のAI環境と起きた変化
ryunakayama
0
190
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.4k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
120
Testing 201, or: Great Expectations
jmmastey
46
8.1k
The Invisible Side of Design
smashingmag
303
52k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
480
A better future with KSS
kneath
240
18k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
320
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
120
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
Geomagical & Dagster Dagster Community Meeting
Noah Kantrowitz > @kantrn - coderanger.net > Principal Ops @
Geomagical > Part of the IKEA family > Augmented reality with furniture
Our Product
Starting Point > Celery & RabbitMQ > Each operation as
its own daemon > celery.canvas > Custom DAG compiler
Design Goals > Keeping most of the solid structure >
Improved DAG expressiveness > Low fixed overhead, compatible with autoscaling > More detailed tracking and metrics
Dagster > Met all our requirements for structural simplicity >
DAG compiler was a bit limited but growing fast > Highly responsive team Dagster > No execution setup that met our needs
But dagster_celery? > Solid and pipeline code commingled > Single
runtime environment > Hard to build a workflow around at scale
But dagster_k8s? > Fine for infrequent or non-customer facing tasks
> Do not put kube-apiserver in your hot path > No really, I mean it
None
Autoscaling > KEDA watching RabbitMQ > Zero-scale: only Dagit and
gRPC daemons > task_acks_late = True > worker_prefetch_multiplier = 1
Remote Solids > Independent release cycles for each Solid >
Can run multiple versions in parallel > Testing in isolation
Writing A Remote Solid app = SolidCelery('repo-something') @app.task(bind=True) def something(self,
foo: str) -> str: return f'Hello {foo}'
Proxy Solids @celery_solid(queue='repo-something') def something(context, item): output = yield {
'foo': item['bar'], } item['something'] = output yield Output(item)
Workflow > One git repo per Dagster repo > main.py
which holds "default" Pipeline > solids.py which defines proxy Solids > Misc other pipelines for testing and development
CI/CD Briefly, since this is its own rabbit hole >
Buildkite > kustomize edit set image > ArgoCD
Downsides > Slow cold start > No feedback during long
tasks > New and exciting bugs
How It's Going > Happy with overall progress > Still
dropping some tasks at load > Plan to move forward looks good
Future Plans > Async execution support > Events from solid
workers > Pipeline-level webhooks > Predictive auto-scaling? K8s Operator?
Can I Use This? Kinda sorta geomagical/dagster_geomagical
Thank You Questions?