Pushing events to users
Currently events are stored in the database and users need to use the API to poll them and be notified of stack changes. This particularly painful for hooks, where Heat is waiting for user input.
Proposed change
==============
To let the user customize how he wants to get event, we add a key to the environment to specify where they should go:
event_sinks:
- type: zaqar-queue
target: myqueue
ttl: 30
event_sinks is a list of target with a type specified, and possible options (like ttl here being a Zaqar option). Zaqar will be the first implementation available, sending all the events to the specified queue.
We’ll use an entry points with stevedore to allow pluggable implementations.
To not add network calls to the critical path of every single event, the publication will be delegated to a thread and thus be asynchronous. The drawback is that potential errors won’t be presented to users.
Events will continue to go in the database.
Blueprint information
- Status:
- Complete
- Approver:
- Sergey Kraynev
- Priority:
- Medium
- Drafter:
- Thomas Herve
- Direction:
- Approved
- Assignee:
- Thomas Herve
- Definition:
- Approved
- Series goal:
- Accepted for mitaka
- Implementation:
- Implemented
- Milestone target:
- mitaka-2
- Started by
- Thomas Herve
- Completed by
- Thomas Herve