Given the new year, I’d like to revive this thread and potentially add canister lifecycle hooks to the DFINITY roadmap somewhere
So far, I haven’t seen any red flags that would hold these back, with the one limitation being that the canister_post_init
implementation may not perfectly meet @dansteren’s use case, but would meet others’ use cases such as mentioned here https://forum.dfinity.org/t/question-how-do-i-make-an-inter-canister-call-from-the-post-upgrade-hook
Also, I’d like to add one additional metric hook to the wish list that canisters could tie into related to their output queues.
-
canister_output_queue_size(): Nat
→ synchronous call that exposes the output queue size of a canister, helping a developer to throttle/pace outgoing calls from a canister. -
canister_on_output_queue_full(): ()
→ triggers when a canister’s output queue is full
I’ve added this to the “wish list” section of the main post in an edit