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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Noah Kantrowitz
February 09, 2021
Programming
0
180
Dagster & Geomagical
Noah Kantrowitz
February 09, 2021
Tweet
Share
More Decks by Noah Kantrowitz
See All by Noah Kantrowitz
The Long Hello World
coderanger
0
19
The Long Hello World (with notes)
coderanger
0
73
What Python Can Learn From Other Languages
coderanger
0
83
What Python Can Learn From Other Languages (with notes)
coderanger
0
200
Swiss Army Django: Small Footprint ETL (with notes) - DjangoCon US
coderanger
0
320
Swiss Army Django: Small Footprint ETL - DjangoCon US
coderanger
0
82
How to look at space: PyCon AU
coderanger
0
140
Swiss Army Django: Small Footprint ETL
coderanger
0
120
Swiss Army Django: Small Footprint ETL (with notes)
coderanger
0
99
Other Decks in Programming
See All in Programming
[SF Ruby Feb'26] The Silicon Heel
palkan
0
120
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
410
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
340
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
700
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
220
The free-lunch guide to idea circularity
hollycummins
0
300
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
820
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
370
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
150
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
280
AHC061解説
shun_pi
0
410
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
260
Featured
See All Featured
Practical Orchestrator
shlominoach
191
11k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
150
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Code Reviewing Like a Champion
maltzj
528
40k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
240
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
75
Google's AI Overviews - The New Search
badams
0
940
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
96
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
140
Amusing Abliteration
ianozsvald
0
140
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?