This is indeed a very huge feature and I would love to see it implemented.
But I have a couple of questions:
- As far as I understand, these long-running updates will be executed one-by-one according to the consensus. This means, that a single update call would occupy a canister for up to 50 consensus ticks (~100 sec) with no other update message (including async responses) being executed within this time window. For some frequently used canisters this could lead to message queue overflow. What is the plan for such scenarios?
- How does this proposal connects to Multi-threading proposal?
Thanks in advance!