Motivating custom events
Imagine you are running an e-commerce platform and you want to trigger a deployment when a customer completes an order. There might be a number of events that occur during an order on your platform, for example:order.created
order.item.added
order.payment-method.confirmed
order.shipping-method.added
order.complete
Event grammarThe above choices of event names are arbitrary. With Prefect events, you’re free to select any event grammar that best
represents your use case.
expect
anorder.complete
eventafter
anorder.created
event- evaluate these conditions
for_each
user id
user_id
as a parameter to the deployment.
Define the trigger
Here’s how this looks in code:post_order_deployment.py
Specify multiple events or resourcesThe
expect
and after
fields accept a set
of event names, so you can specify multiple events for each condition.Similarly, the for_each
field accepts a set
of resource ids.Simulate events
To simulate users causing order status events, run the following in a Python shell or script:simulate_events.py
user_id_1
creates and then completes an order, triggering a run of our deployment.user_id_2
creates an order, but no completed event is emitted so no deployment is triggered.