Skip to main content

Dagster ⇄ Pulse

Intermediate ⏱ 10 min dagster · python · op · ✅ ran E2E in repo

Dagster owns the job/asset orchestration; Pulse is the real-time stream-processing op it calls. Repo example: examples/dagster-pulse-bridge/validated end-to-end on Dagster 1.13.13, in-process (execute_in_process, no daemon/webserver).

@job order_job: make_order → score_via_pulse (@op) → decide

The op does the universal two calls:

POST /api/pulse/x/order-scoring/in
GET /api/pulse/events/order-scoring.score.out

Run it

pulse server start --dev
mkdir app && cp pulse.yaml app/ && (cd app && pulse deploy .) # stands up order-scoring
pip install dagster requests
python dagster_job.py

Validated output

amount= 2500 -> high_value=True decision=escalate
amount= 300 -> high_value=False decision=auto-approve

Dagster keeps the asset lineage and scheduling; Pulse keeps the stream state. Change the score stage's operators — the job graph is untouched.

Next