Multiple people have discussed this, and I believe it’s an obvious limitation of the IC: We need canisters to be able to push data to clients.
Right now clients must continuously poll canisters to know about state changes. This does not scale well and causes various issues for client developers and users.
Canister push would hopefully allow developers to use protocols like WebSockets, which provide elegant bi-directional communication between clients and servers.
Possibly related:
- WebSocket support
- Realtime communication between canisters and clients
- Idempotent egress messages (e.g send an email)
- How to send data out of IC
- Making outbound HTTP (or other RPC) calls from canister code
- Is it possible for functions to emit something like Ethereum "Events"?
- IC restrictions and aspirations versus general-purpose computers
- Make external (non-IC) HTTP request from backend canister?