Show what fires after a publish: brokers, workers, retries, and dead-letter paths. Event edges (=>) stay visually distinct from sync calls.
Edit source — diagram updates liveSource diagram "OrderPlaced pipeline" {
direction LR
presentation {
title: "OrderPlaced pipeline"
titleSubtitle: "One publish · fan-out queues · workers · sinks · dead-letter"
groupAccent: true
}
layout {
density: normal
}
edges {
route: metro
crossings: smart
}
group pipeline {
chrome: false
arrange: row
align: stretch
group producers "Producers" {
arrange: stack
checkout: service "Checkout" { icon: shopping-cart }
bus: broker "Event bus" {
icon: logos:kafka
subtitle: true
technology: "Kafka"
}
}
group queues "Queues" {
arrange: stack
ordersQ: queue "orders" { icon: list-ordered }
paymentsQ: queue "payments" { icon: list-ordered }
emailQ: queue "email" { icon: list-ordered }
}
group consumers "Consumers" {
arrange: stack
inventory: worker "Inventory worker" { icon: package }
billing: worker "Billing worker" { icon: credit-card }
notify: worker "Notify worker" { icon: mail }
}
group sinks "Sinks" {
arrange: stack
ordersDb: database "Orders DB" { icon: logos:postgresql }
stripe: external "Stripe" { icon: simple-icons:stripe }
mail: external "Email provider" { icon: send }
deadLetter: dlq "dead-letter" { icon: circle-alert }
}
}
checkout => bus "OrderPlaced" { icon: mail; priority: high }
bus => ordersQ "route"
bus => paymentsQ "route"
bus => emailQ "route"
ordersQ -> inventory { priority: high }
paymentsQ -> billing { priority: high }
emailQ -> notify
inventory -> ordersDb "upsert lines" { priority: high }
billing -> stripe "capture" { priority: high }
billing -> ordersDb "payment status"
notify -> mail "receipt" { icon: send }
billing -x deadLetter "poison message" { icon: circle-alert }
inventory -x deadLetter "retry exhausted"
}
-> is a flow/sync edge; => is an event edge with a dashed default stroke.
Browse the gallery / Quick start