For the third point in the list posted by trisolaran there may be another option that use a long-lived request with streamed response.
The Python API may expose a “subscribe” call with streamed response. When an event occur it streams/send back a new response item.
This solution require keepalive pings to keep connection alive and some error handling code (i.e. in the server you need to force unsubscribe for disconnected clients).


















