Graphviz Example: workflow

digraph BookingWorkflow {
start[shape=circle]
end[shape=doublecircle]
lock_booking[shape=rectangle]
process_payment[shape=rectangle]
successful_payment[shape=diamond label="success?"]
reserve_booking[shape=rectangle]
release_booking[shape=rectangle]

start -> lock_booking
lock_booking -> process_payment
process_payment -> successful_payment
successful_payment -> release_booking[label=NO]
successful_payment -> reserve_booking[label=Yes]
reserve_booking -> send_email
send_email -> end
release_booking -> end
}
BookingWorkflow start start lock_booking lock_booking start->lock_booking end end process_payment process_payment lock_booking->process_payment successful_payment success? process_payment->successful_payment reserve_booking reserve_booking successful_payment->reserve_booking Yes release_booking release_booking successful_payment->release_booking NO send_email send_email reserve_booking->send_email release_booking->end send_email->end