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
Noah Kantrowitz
February 09, 2021
Programming
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dagster & Geomagical
Noah Kantrowitz
February 09, 2021
More Decks by Noah Kantrowitz
See All by Noah Kantrowitz
The Long Hello World
coderanger
0
31
The Long Hello World (with notes)
coderanger
0
100
What Python Can Learn From Other Languages
coderanger
0
91
What Python Can Learn From Other Languages (with notes)
coderanger
0
230
Swiss Army Django: Small Footprint ETL (with notes) - DjangoCon US
coderanger
0
360
Swiss Army Django: Small Footprint ETL - DjangoCon US
coderanger
0
93
How to look at space: PyCon AU
coderanger
0
150
Swiss Army Django: Small Footprint ETL
coderanger
0
130
Swiss Army Django: Small Footprint ETL (with notes)
coderanger
0
110
Other Decks in Programming
See All in Programming
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
210
AI時代のUIはどこへ行く?その2!
yusukebe
20
7k
net-httpのHTTP/2対応について
naruse
0
470
さぁV100、メモリをお食べ・・・
nilpe
0
140
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
5.2k
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
320
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
490
Inside Stream API
skrb
1
680
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
110
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
100
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
120
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
800
First, design no harm
axbom
PRO
2
1.2k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Visualization
eitanlees
152
17k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
400
A Modern Web Designer's Workflow
chriscoyier
698
190k
Ruling the World: When Life Gets Gamed
codingconduct
0
250
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
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?